win下的超时处理之eventlet

一、前言

网页自动派单处理中,有时循环会在某个错误的地方挂起,我们需要设置一个时间长度,超时则跳过这个错误(这个错误或许人工处理了),进入下一轮循环。

度了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('      退出结束')
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值