请查看以下简单代码,然后帮助回答我的问题。
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将警报信号转移到异常。
所以我的问题是
这是控制进程超时的正确方法吗?
这会造成任何麻烦吗?