芹菜任务不会超时

时间:2017-11-27 17:56:40

标签: python redis celery django-celery

我想验证为芹菜任务设置时间限制。

我目前的配置如下:

CELERYD_TASK_SOFT_TIME_LIMIT = 30
CELERYD_TASK_TIME_LIMIT = 120

task_soft_time_limit = 29
task_time_limit = 44_LIMIT = 120

我正在重载超时参数,因为它似乎有name change coming而我只是想确保我至少达到一次超时。

但是当我在调试器中运行测试时,cellery app.conf字典看起来像这样:

(Pdb) app.conf['task_time_limit'] == None
True
(Pdb) app.conf['task_soft_time_limit'] == None
True
(Pdb) app.conf['CELERYD_TASK_SOFT_TIME_LIMIT']
30
(Pdb) app.conf['CELERYD_TASK_TIME_LIMIT']
120

我已经编写了一个我认为会触发超时的测试但是没有出现任何错误:

@app.task(soft_time_limit=15)
def time_out_task():
    import time
    count = 0
    #import pdb; pdb.set_trace()
    while count < 1000:
        time.sleep(1)
        count += 1
        print(count)

我的问题如下:

  1. 我应该为软硬时间限制设置哪些圆锥形设置?
  2. 我怎样才能在测试中执行任务,证明时间限制到位。
  3. 由于

1 个答案:

答案 0 :(得分:0)

在Django设置中,CELERY_TASK_TIME_LIMIT对我有用

CELERY_TASK_TIME_LIMIT = 60