gpt4 book ai didi

python - 如何实现超时功能?

转载 作者:行者123 更新时间:2023-12-01 00:06:19 25 4
gpt4 key购买 nike

我试图允许一定的秒数来满足条件。

timeout = time.time() + 15
while SOMETHING NOT MET:
time.sleep(1)
if time.time() > timeout:
raise Exception
continue

这是允许最多 15 秒的正确方法吗?这似乎没有按预期工作。也许有更好/更干净的方法。

最佳答案

按照 documentation 中给出的示例使用 signal.alarm signal 模块的。

class TimesUpError(RuntimeException):
pass


def handler(signum, frame):
raise TimesUpError


signal.signal(signal.SIGALRM, handler)
signal.alarm(15)
try:
while SOME_CONDITION:
time.sleep(1)
except TimesUpError:
print("Times up, continuing")
finally:
signal.alarm(0)

根据 SOME_CONDITION 的情况,您也许可以使用 signal.sigtimedwait 而不是循环。

关于python - 如何实现超时功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59953644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com