【发布时间】:2014-05-08 12:22:55
【问题描述】:
如何在 python 中使语句/代码块超时?
我尝试使用下面的帖子查看帖子,但无法识别信号:
wls:/offline> import signal
Traceback (innermost last):
File "<console>", line 1, in ?
ImportError: no module named signal
代码:
import os
import signal
def handler(signum, frame):
print "Forever is over!"
raise Exception("end of time")
def loop_forever():
import time
while 1:
print "sec"
time.sleep(1)
signal.signal(signal.SIGALRM, handler)
signal.alarm(10)
try:
loop_forever()
except Exception, exc:
print exc
【问题讨论】:
-
用线程不是更容易做到吗?
-
你在什么操作系统上运行它?以上应该适用于基于
UNIX的系统 -
@RiccardoCagnasso 不一定,线程并不总是 python 中的最佳选择。而且这个 sn-p 对我来说很容易完成 ;-)
-
我观察到的一件事是,如果我将它作为 python 脚本运行它可以工作。如果我使用 java/WLST 运行它,它不会识别信号
标签: python python-2.7 jython wlst