データベースになにか進捗の情報を保存しておいて、そこから取り出して処理を再開するようにした方がいいと思う
完全に同意です。進捗情報をデータベースに保存し、再開時にそれを利用して処理を再開するのが良い方法です。この場合、プログラムが停止した時点の状態を正確に保存する必要があります。以下は、そのための一般的な手順です。
-
進捗情報をデータベースに保存する: プログラムが処理したURLやその他の進捗情報をデータベースに保存します。この情報には、処理の完了状態や最後に処理したURLなどが含まれます。
-
再開時に進捗情報を取得する: プログラムが再開されると、データベースから進捗情報を取得します。これにより、プログラムは停止した場所から処理を再開できます。
-
再開ポイントを特定する: プログラムが再開できるポイントを特定します。これは、プログラムが最後に成功した処理の直後である必要があります。
-
プログラムの再開: プログラムが再開されると、保存された進捗情報を使用して処理を再開します。
以下は、再開機能を組み込んだFetch_product_urlクラスの一部です。
python
class Fetch_product_url: def __init__(self, crawl_urls:list, crawl_site_id:int, class_name_page_wrapper): # 初期化処理 # データベースから進捗情報を取得 self.resume, self.last_processed_url = self.get_resume_info_from_database() if self.resume and self.last_processed_url: # 最後に処理したURLまでスキップ self.skip_to_last_processed_url() # 処理開始 for crawl_url in tqdm(self.crawl_urls, total=len(self.crawl_urls)): # 処理を継続 if self.resume and self.last_processed_url and crawl_url != self.last_processed_url: continue # クロール処理 # 進捗情報をデータベースに保存 # 最後に処理したURLを保存 def get_resume_info_from_database(self): # データベースから進捗情報を取得する処理 def skip_to_last_processed_url(self): # 最後に処理したURLまでスキップする処理
このように、再開時にデータベースから進捗情報を取得し、再開ポイントでプログラムがスキップするように設計することができます。

ディスカッション
コメント一覧
まだ、コメントがありません