我的任务平均需要20秒。我想为此任务设置软超时和超时。我这样定义:
@app.task(ignore_result=True, timeout=100, soft_timeout=50)
def MYTASK(SOMEPARAMS):
# MYTASK
但它确实不起作用。我用这个参数测试它:
@app.task(ignore_result=True, timeout=1, soft_timeout=1)
def MYTASK(SOMEPARAMS):
# MYTASK
但是我的任务正常工作,并且它们需要花费超过1秒的时间,而它永远不应该完成。
为什么超时不起作用?
修改: 当我在日志中使用1秒超时时,我看到这样的打印:
[2014-08-22 12:51:00,003: INFO/MainProcess] Task MYTASK[56002e72-a093-46c6-86cd-4c7b7e6ea7c3] succeeded in 15.549023876s: None
答案 0 :(得分:3)
使用time_limit
和soft_time_limit
参数:
@task(time_limit=2, soft_time_limit=1)
def mytask():
pass
另请注意:
时间限制目前不适用于Windows和其他平台 不支持SIGUSR1信号。