Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个函数,我需要在 X 秒后引发异常,我该怎么做?我尝试了这段代码,但它不起作用:
from eventlet.timeout import Timeout timeout = Timeout(seconds, exception) try: do somethins finally: timeout.cancel()
根据超时文档:
有两个超时警告需要注意: 如果 try/finally 或 with-block 中的代码块从不合作产生,则无法引发超时。在 Eventlet 中,这应该很少成为问题,但请注意,您不能使用此类使仅 CPU 操作超时。 如果代码块捕获并且不重新引发 BaseException(例如,使用 except:),那么它将捕获 Timeout 异常,并且可能不会按预期中止。
有两个超时警告需要注意:
如果您在循环中不做任何 IO/ sleep的情况下进行昂贵的计算,则不会发生超时。