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. python小白,問(wèn)一個(gè)關(guān)于可變類(lèi)型和不可變類(lèi)型底層的問(wèn)題2. python把第x列數(shù)據(jù)寫(xiě)入第x個(gè)文件3. javascript - js 對(duì)中文進(jìn)行MD5加密和python結(jié)果不一樣。4. python - Django前臺(tái)url未能正確訪問(wèn)方法求助?5. 數(shù)據(jù)庫(kù) - mysql boolean型無(wú)法插入true6. mysql - 我用SQL語(yǔ)句 更新 行的時(shí)候,發(fā)現(xiàn)全部 中文都被清空了,請(qǐng)問(wèn)怎么解決?7. mysql服務(wù)無(wú)法啟動(dòng)1067錯(cuò)誤,誰(shuí)知道正確的解決方法?8. python - 請(qǐng)問(wèn)matplotlib.pyplot.save的路徑如何更改9. mysql - SQL問(wèn)個(gè)基礎(chǔ)例子,書(shū)上的,我怎么看都看不懂..誰(shuí)幫我解釋一下第2個(gè)為什么和第1個(gè)一樣?10. python - Shadowsocks的從剪貼板導(dǎo)入U(xiǎn)RL功能是怎么把剪貼板中復(fù)制的ss://XXXXXXXXXX這種鏈接轉(zhuǎn)換成具體賬號(hào)信息的?
