如果需要太長時間才能完成,則使用超時值函數(shù)。我有一個shell腳本,它循環(huán)遍歷一個包含URL:s的文本文件,我想訪問它并截取截圖。這一切都是簡單而簡單的。腳本初始化一個類,在運行時創(chuàng)建列表中每個站點的屏幕快照。有些站點需要很長時間才能加載,有些可能根本沒有加載。因此,我希望將屏幕抓取函數(shù)包裝在超時腳本中,使函數(shù)返回。False如果它不能在10秒內完成。我對可能的最簡單的解決方案感到滿意,也許設置一個異步計時器,在10秒后返回false,而不管函數(shù)內部實際發(fā)生了什么?
3 回答

泛舟湖上清波郎朗
TA貢獻1818條經(jīng)驗 獲得超3個贊
with
with timeout(seconds=3): time.sleep(4)
signal
import signalclass timeout: def __init__(self, seconds=1, error_message='Timeout'): self.seconds = seconds self.error_message = error_message def handle_timeout(self, signum, frame): raise TimeoutError(self.error_message) def __enter__(self): signal.signal(signal.SIGALRM, self.handle_timeout) signal.alarm(self.seconds) def __exit__(self, type, value, traceback): signal.alarm(0)
添加回答
舉報
0/150
提交
取消