celery任务中的softtimeout和timeout不起作用

2 8*_*2 8 5 python celery

我的任务平均需要20秒.我想为此任务设置软超时和超时.我这样定义:

@app.task(ignore_result=True, timeout=100, soft_timeout=50)
def MYTASK(SOMEPARAMS):
     # MYTASK
Run Code Online (Sandbox Code Playgroud)

但它确实不起作用.我用这个参数测试它:

@app.task(ignore_result=True, timeout=1, soft_timeout=1)
def MYTASK(SOMEPARAMS):
     # MYTASK
Run Code Online (Sandbox Code Playgroud)

但我的任务正常工作,它们需要超过1秒的时间,而它永远不应该完成.

为什么超时不起作用?

编辑:当我在日志中使用1秒超时时,我看到这样的打印:

[2014-08-22 12:51:00,003: INFO/MainProcess] Task MYTASK[56002e72-a093-46c6-86cd-4c7b7e6ea7c3] succeeded in 15.549023876s: None
Run Code Online (Sandbox Code Playgroud)

ale*_*asi 4

用途time_limitsoft_time_limit参数:

@task(time_limit=2, soft_time_limit=1)
def mytask():
    pass
Run Code Online (Sandbox Code Playgroud)

另请注意,:

时间限制目前不适用于 Windows 和其他不支持 SIGUSR1 信号的平台。