如何在python进程中处理超时?

时间:2018-05-20 07:40:58

标签: python signals

请查看以下简单代码,然后帮助回答我的问题。

import signal
def task(*args, **kwargs):
    signal.signal(signal.SIGALRM, signal_to_exception)
    while True:
        try:
            signal.alarm(3)
            # do some business
            signal.alarm(0)
        except AlarmException:
            signal.alarm(0)
            continue

该任务将由python进程运行。代码

做一些事情

由于IO等待或其他原因可能会挂起。

我添加了信号模型,每隔3秒发送一次发送报警信号。如果业务在3秒内完成。然后将警报重置为0.

signal_to_exception将警报信号转移到异常。

所以我的问题是

这是控制进程超时的正确方法吗?

这会造成任何麻烦吗?

0 个答案:

没有答案