我试图限制函数在python(flask)中运行的时间。它看起来像这样:
def my_function:
try:
long_function_time()
catch TimeOutException:
return "Function took too long to execute"
def long_function_time:
#stuff here
我最初尝试过使用信号,但被告知这不是一个好方法,因为flask运行在线程环境中。我希望最大的执行时间是灵活的,这样我就可以很容易地改变它。
我目前使用的代码(有时不起作用,不知道原因):
class TimedOutExc(Exception):
pass
def deadline(timeout, *args):
def decorate(f):
def handler(signum, frame):
signal.alarm(0)
raise TimedOutExc()
def new_f(*args):
signal.signal(signal.SIGALRM, handler)
signal.alarm(timeout)
return f(*args)
new_f.__name__ = f.__name__
return new_f
return decorate
提前谢谢!
目前没有回答
相关问题 更多 >
编程相关推荐