gpt4 book ai didi

python - 当进程收到 SIGSTOP 和 SIGCONT 时如何处理超时?

转载 作者:行者123 更新时间:2023-11-28 16:48:31 25 4
gpt4 key购买 nike

我有一些 Python 代码使用 threading.Timer 来实现 60 秒的操作超时。

问题在于此代码在作业控制环境中运行,在该环境中它可能会被更高优先级的作业抢占。在这种情况下,它将发送 SIGSTOP,然后在一段时间后发送 SIGCONT。我需要一种方法来以某种方式注意到发生了这种情况并重置超时:显然,如果暂停了整整 60 秒,操作并没有真正超时。

我尝试为 SIGCONT 添加一个信号处理程序,但这似乎是在提供给 threading.Timer 的代码执行后执行的。

有什么办法可以实现吗?

最佳答案

在发布这篇文章后,我想到了一个相当简单的答案,就是将计时器简单地分解成多个子计时器,例如有 10 个 6 秒计时器,而不是每个计时器启动链中的下一个计时器。这样一来,如果我被挂起,我只会失去一个计时器,并且在超时之前仍然会等待大部分时间。

这当然不是万无一失的,尤其是当我反复暂停和重新启动时,但这很容易做到,而且看起来可能已经足够好了。

关于python - 当进程收到 SIGSTOP 和 SIGCONT 时如何处理超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10983139/

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