python如何解決指定代碼段超時(shí)程序卡死
python解決指定代碼段超時(shí)程序卡死
最近我寫的一個(gè)程序中遇到了解析網(wǎng)頁的代碼,對于網(wǎng)頁信息比較多的可能會(huì)超時(shí),最后解析失敗,程序卡死,于是我就找到了一個(gè)解決辦法
大致模板如下:
import eventlet
eventlet.monkey_patch()
flag_TimeOut = True
with eventlet.Timeout(40, False): ?# 設(shè)置超時(shí)時(shí)間為20秒
?? ?qualified = Qua.getQualifiedRate(all_url)
?? ?isPass = qualified.getPassRate()
?? ?flag_TimeOut = False
if flag_TimeOut:
?? ?print("程序超時(shí)!")注意:主要就是導(dǎo)入eventlet這個(gè)模塊,借助它來完成超時(shí)處理,具體的函數(shù)介紹可以去搜索下相關(guān)資料,這里主要提供一個(gè)方法。
python程序運(yùn)行超過時(shí)長強(qiáng)制退出
python程序運(yùn)行超過時(shí)長強(qiáng)制退出方式,防止程序卡死;
主要兩種方式:
1、程序內(nèi)部設(shè)置時(shí)長,超過退出
import datetime import time import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.now() print (endtime – starttime).seconds
import datetime
import time
t1 = time.time()
t1 = time.localtime(t1).tm_hour
print(t1)
while 1:
if time.localtime(time.time()).tm_hour - t1<3:
print("@@@@",time.localtime(time.time()).tm_hour)
else:
print("break")
break
print("finsh")import time
import eventlet#導(dǎo)入eventlet這個(gè)模塊
eventlet.monkey_patch()#必須加這條代碼
with eventlet.Timeout(2,False):#設(shè)置超時(shí)時(shí)間為2秒
time.sleep(4)
print('沒有跳過這條輸出')
print('跳過了輸出')func_timeout
from func_timeout import func_set_timeout
@func_set_timeout(5) # 設(shè)定函數(shù)執(zhí)行時(shí)間
def task():
print('開始運(yùn)行!')
time.sleep(6)
return '執(zhí)行成功,未超時(shí)'
try:
task()
excpet:
print("---")2、程序外部控制,超過強(qiáng)制退出
通過jenkins插件build-timeout ,安裝后重啟生效https://updates.jenkins.io/latest/build-timeout.hpi
Absolute多少分鐘沒有結(jié)束則執(zhí)行動(dòng)作


以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中性能分析利器pyinstrument詳細(xì)講解
大家好,本篇文章主要講的是Python中性能分析利器pyinstrument詳細(xì)講解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02
解決windows上安裝tensorflow時(shí)報(bào)錯(cuò),“DLL load failed: 找不到指定的模塊”的問題
這篇文章主要介紹了解決windows上安裝tensorflow時(shí)報(bào)錯(cuò),“DLL load failed: 找不到指定的模塊”的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
python動(dòng)態(tài)網(wǎng)站爬蟲實(shí)戰(zhàn)(requests+xpath+demjson+redis)
本文主要介紹了python動(dòng)態(tài)網(wǎng)站爬蟲實(shí)戰(zhàn)(requests+xpath+demjson+redis),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Python 通過爬蟲實(shí)現(xiàn)GitHub網(wǎng)頁的模擬登錄的示例代碼
這篇文章主要介紹了Python 通過爬蟲實(shí)現(xiàn)GitHub網(wǎng)頁的模擬登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

