suchen

Heim  >  Fragen und Antworten  >  Hauptteil

python - Wie kann die Situation gelöst werden, in der das Betriebssystem das Programm anhält, nachdem es zu lange ausgeführt wurde?

Ich habe mehrere Python-Crawler-Programme, die kontinuierlich ausgeführt werden müssen, aber jedes Mal reagieren sie nach zwei Tagen nicht mehr. Jedes Mal werden sie bei time.sleep(60) blockiert, aber der Prozess bricht nicht ab, selbst wenn Sie Strg eingeben C in der Konsole können Sie das Programm nicht beenden. Sie können das Beenden nur im Task-Manager erzwingen.

Was ist der Grund dafür? und wie kann man dieses Problem lösen?

Vielen Dank im Voraus, Senioren!

扔个三星炸死你扔个三星炸死你2732 Tage vor1079

Antworte allen(2)Ich werde antworten

  • 巴扎黑

    巴扎黑2017-06-12 09:24:55

    问题分析建议:

    linux: 可以尝试通过strace命令追踪进程状态, 根据输出的内容做分析,或者通过proc对应目录的文件对进程的各项指标做分析! Ctrl-C无效,怀疑进程进入不可中断的睡眠,具体还得看实际获取的数据才有可能知道

    windows: 通过任务管理器找到对应的进程, 右键->创建转储文件, 分析该转储文件看能否找出原因.

    爬虫程序: 自身对爬取的进度,做详细的日志, 不管是链接,还是遇到的异常,最好都记录下来,以便得知具体停止的时间, 和停止时,爬取的进度, 下次可以先针对这个进度再去深入分析.

    Antwort
    0
  • PHP中文网

    PHP中文网2017-06-12 09:24:55

    linux系统的话试试用crontab去做定时任务
    windows用任务计划

    Antwort
    0
  • StornierenAntwort