如果需要太长时间才能完成,则使用超时值函数。我有一个shell脚本,它循环遍历一个包含URL:s的文本文件,我想访问它并截取截图。这一切都是简单而简单的。脚本初始化一个类,在运行时创建列表中每个站点的屏幕快照。有些站点需要很长时间才能加载,有些可能根本没有加载。因此,我希望将屏幕抓取函数包装在超时脚本中,使函数返回。False如果它不能在10秒内完成。我对可能的最简单的解决方案感到满意,也许设置一个异步计时器,在10秒后返回false,而不管函数内部实际发生了什么?
3 回答

泛舟湖上清波郎朗
TA贡献1818条经验 获得超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
提交
取消