网页自动派单处理中,有时循环会在某个错误的地方挂起,我们需要设置一个时间长度,超时则跳过这个错误(这个错误或许人工处理了),进入下一轮循环。
度了PYTHON几种超时跳出实现方法:timeout_decorator、signal、eventlet、threading等,安装测试,前2种不太适合WIN,eventlet测试成功。
1.pip install eventlet成功,import eventlet成功,运行eventlet.monkey_patch()死机,不运行不起作用。
2.查阅猴子补丁参数:(os=None, select=None, socket=None, thread=None, time=None, psycopg=None),分别测试,只有time、select起作用,thread死机;其他不起作用。
两者区别:time=True时,到了时间数立即跳出; select=True,要等正在运行的那行代码执行完毕才跳出(这个人工读秒可鉴别)。
import time import eventlet
eventlet.monkey_patch(time=True)#select=True等的时间长
def test(): print('函数start') time.sleep(1) print('时1秒') time.sleep(8)#这个时间设置长,人工读秒 print('pass 9 sec') return 1
with eventlet.Timeout(3,False): print('go') aa=test() print(aa) print(' 退出结束')