如何在Python中限制函数调用的执行时间在我的代码中有一个与套接字相关的函数调用,该函数来自另一个模块,因此我无法控制,问题是它偶尔阻塞几个小时,这是完全不能接受的,我如何从代码中限制函数的执行时间?我想解决方案必须利用另一个线程。
3 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
with
import signalfrom contextlib import contextmanagerclass TimeoutException(Exception): pass@contextmanagerdef time_limit(seconds):
def signal_handler(signum, frame):
raise TimeoutException("Timed out!")
signal.signal(signal.SIGALRM, signal_handler)
signal.alarm(seconds)
try:
yield
finally:
signal.alarm(0)try:
with time_limit(10):
long_function_call()except TimeoutException as e:
print("Timed out!")添加回答
举报
0/150
提交
取消
