我有一个函数,需要在X秒后引发异常,我该怎么做?我尝试了这个代码,但它不起作用:
from eventlet.timeout import Timeout
timeout = Timeout(seconds, exception)
try:
do somethins
finally:
timeout.cancel()
根据超时文档:
需要注意两个超时警告:
- 如果try/finaly或with块中的代码块从未协同产生,则无法引发超时。在Eventlet中应该很少成为问题,但要意识到你不能拖延此类的仅CPU操作
- 如果代码块捕获并没有重新引发BaseException(例如,使用except:),那么它将捕获Timeout异常,并且可能不会按预期中止
如果您在循环中不进行任何IO/睡眠的情况下进行昂贵的计算,则不会发生超时。