python - 如何解決程序運(yùn)行太久之后被操作系統(tǒng)暫停的情況?
問(wèn)題描述
我有幾個(gè)python爬蟲(chóng)程序,需要持續(xù)不間斷運(yùn)行,但是每次都是運(yùn)行了兩天之后變得無(wú)響應(yīng),每次都是阻塞在time.sleep(60)的地方,但是進(jìn)程又沒(méi)有死掉,在控制臺(tái)輸入Ctrl C都不能退出程序,只能在任務(wù)管理器里強(qiáng)制退出才行。
請(qǐng)問(wèn)這是由什么原因?qū)е碌模恳约叭绾谓鉀Q這個(gè)問(wèn)題?
先謝謝各位前輩了!
問(wèn)題解答
回答1:問(wèn)題分析建議:
linux: 可以嘗試通過(guò)strace命令追蹤進(jìn)程狀態(tài), 根據(jù)輸出的內(nèi)容做分析,或者通過(guò)proc對(duì)應(yīng)目錄的文件對(duì)進(jìn)程的各項(xiàng)指標(biāo)做分析! Ctrl-C無(wú)效,懷疑進(jìn)程進(jìn)入不可中斷的睡眠,具體還得看實(shí)際獲取的數(shù)據(jù)才有可能知道
windows: 通過(guò)任務(wù)管理器找到對(duì)應(yīng)的進(jìn)程, 右鍵->創(chuàng)建轉(zhuǎn)儲(chǔ)文件, 分析該轉(zhuǎn)儲(chǔ)文件看能否找出原因.
爬蟲(chóng)程序: 自身對(duì)爬取的進(jìn)度,做詳細(xì)的日志, 不管是鏈接,還是遇到的異常,最好都記錄下來(lái),以便得知具體停止的時(shí)間, 和停止時(shí),爬取的進(jìn)度, 下次可以先針對(duì)這個(gè)進(jìn)度再去深入分析.
回答2:linux系統(tǒng)的話試試用crontab去做定時(shí)任務(wù)windows用任務(wù)計(jì)劃
相關(guān)文章:
1. docker - 如何修改運(yùn)行中容器的配置2. javascript - Web微信聊天輸入框解決方案3. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?4. javascript - log4js的使用問(wèn)題5. javascript - 移動(dòng)端textarea不能上下滑動(dòng),該怎么解決?6. css - 對(duì)于類選擇器使用的問(wèn)題7. javascript - 音頻加載問(wèn)題8. javascript - 為什么這個(gè)點(diǎn)擊事件需要點(diǎn)擊兩次才有效果9. javascript - Ajax加載Json時(shí),移動(dòng)端頁(yè)面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?10. javascript - 有沒(méi)有什么好的圖片懶加載的插件,需要包含監(jiān)聽(tīng)頁(yè)面滾動(dòng)高度,然后再加載的功能
