【问题标题】:how to raise a timeout exception after X seconds in python如何在python中X秒后引发超时异常
【发布时间】:2013-08-12 22:56:37
【问题描述】:

我有一个函数,我需要在 X 秒后引发异常,我该怎么做? 我尝试了这段代码,但它不起作用:

from eventlet.timeout import Timeout
timeout = Timeout(seconds, exception)
try:
   do somethins
finally:
   timeout.cancel()

【问题讨论】:

    标签: python exception timeout


    【解决方案1】:

    根据the timeout documentation:

    有两个超时警告需要注意:

    • 如果 try/finally 或 with-block 中的代码块从不合作产生,则无法提高超时。在 Eventlet 中,这 应该很少成为问题,但请注意您不能超时 此类仅用于 CPU 的操作。
    • 如果代码块捕获并且不重新引发 BaseException(例如,使用 except:),那么它将捕获 Timeout 异常,并且 可能不会按预期中止。

    如果在循环中不做任何 IO/sleep 的情况下进行昂贵的计算,则不会发生超时。

    【讨论】:

    • 我有 telnet 连接,如果连接不做任何事情,我需要在 X 秒后引发异常
    猜你喜欢
    • 1970-01-01
    • 2020-12-19
    • 2016-10-31
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多