我有一些 Python 代码使用 threading.Timer 为操作实现 60 秒超时。
问题是这段代码在作业控制环境中运行,它可能会被更高优先级的作业抢占。在这种情况下,它将被发送 SIGSTOP,然后是一段时间后,SIGCONT。我需要一种方法来以某种方式注意到这已经发生并重置超时:显然,如果操作已暂停整个 60 秒,则该操作并没有真正超时。
我试图为 SIGCONT 添加一个信号处理程序,但这似乎是在提供给 threading.Timer 的代码执行后执行的。
有没有办法做到这一点?