継続的に実行する必要がある Python クローラー プログラムがいくつかありますが、2 日間実行すると毎回応答しなくなります。そのたびに、time.sleep(60) でブロックされますが、プロセスは再び続行されます。死んではいません。コンソールで Ctrl C を押してもプログラムを終了できず、タスク マネージャーでのみ強制終了できます。
その理由は何ですか?そしてこの問題をどうやって解決するのでしょうか?
先輩方、よろしくお願いします!
問題分析の提案:
linux: 可以尝试通过strace命令追踪进程状态, 根据输出的内容做分析,或者通过proc对应目录的文件对进程的各项指标做分析! Ctrl-C無効です。プロセスが中断不可能なスリープに入っている可能性があります。詳細を知るには、取得された実際のデータを確認する必要があります。
linux
strace
proc
Ctrl-C
: タスクマネージャーで該当するプロセスを見つけ、右クリック -> ダンプファイルを作成し、ダンプファイルを分析して原因を特定できるかどうかを確認します。windows
windows
: クロールの進行状況の詳細なログを記録し、リンクや例外が発生した場合は、次回クロールが停止したときの具体的な停止時間と進行状況を把握できるようにすることが最善です。まずこの進捗状況を確認してから、徹底的に分析します。爬虫程序
爬虫程序
Linux システムの場合は、crontab を使用してスケジュールされたタスクを実行してみてください Windows の場合は、タスク スケジューラを使用してください
問題分析の提案:
linux
: 可以尝试通过strace
命令追踪进程状态, 根据输出的内容做分析,或者通过proc
对应目录的文件对进程的各项指标做分析!Ctrl-C
無効です。プロセスが中断不可能なスリープに入っている可能性があります。詳細を知るには、取得された実際のデータを確認する必要があります。: タスクマネージャーで該当するプロセスを見つけ、右クリック -> ダンプファイルを作成し、ダンプファイルを分析して原因を特定できるかどうかを確認します。
windows
: クロールの進行状況の詳細なログを記録し、リンクや例外が発生した場合は、次回クロールが停止したときの具体的な停止時間と進行状況を把握できるようにすることが最善です。まずこの進捗状況を確認してから、徹底的に分析します。
爬虫程序
Linux システムの場合は、crontab を使用してスケジュールされたタスクを実行してみてください
Windows の場合は、タスク スケジューラを使用してください