【发布时间】:2016-07-13 23:13:21
【问题描述】:
我需要在不同的输入上多次应用一个函数。有时该功能需要数小时才能运行。我不希望它持续超过 10 秒。我在之前的帖子 (How to limit execution time of a function call in Python) 中找到了该方法。我可以使用它,但是一旦完成,我的内核就会死掉(出乎意料)。您会在下面找到一个示例。
有人遇到这个问题/知道为什么会这样吗?
Fyk:我使用蜘蛛(Python 2.7.11 64bits,Qt 4.8.7,PyQt4 (API v2) 4.11.4 on Darwin)
import signal
import time
def signal_handler(signum, frame):
raise Exception("Timed out!")
for i in range(10):
signal.signal(signal.SIGALRM, signal_handler)
signal.alarm(10) # Ten seconds
try:
time.sleep(0.2) # The function I want to apply
print("Ok it works")
except Exception, msg:
print "Timed out!"
【问题讨论】: