芹菜没有选择CELERY_ALWAYS_EAGER设置

时间:2017-05-12 08:32:50

标签: python django celery

我正在运行Django 1.8 + Celery 4.0.2 Celery配置得很好,可以在redis后端本地运行我的Django任务。 但是当我尝试使用CELERY_ALWAYS_EAGER = True设置时, 此设置无效。其他设置不是这种情况,例如CELERY_TIMEZONE

具体来说,在pdb我看到app.conf.task_always_eagerFalse

  

LIB / python2.7 /站点包/芹菜/应用程序/ task.py(520)apply_async()   所以CELERY_ALWAYS_EAGER不会被选中,对app.conf.task_always_eager没有影响

pdb的更多信息:

> app.conf.get('CELERY_ALWAYS_EAGER')
> True
> app.conf.task_always_eager
> False

这会导致什么?我知道Celery 4.x正在从旧设置名称转换为新设置名称,但他们仍然承诺仍会使用旧设置名称。

1 个答案:

答案 0 :(得分:19)

CELERY_ALWAYS_EAGER已在版本4.0 +中重命名为CELERY_TASK_ALWAYS_EAGER

更准确地说,全部大写设置已被弃用,有利于直接配置芹菜应用程序对象,有些已被命名空间以使用task_worker_作为前缀。由于全部大写设置仍具有向后兼容性,因此也间接重命名为全大写设置。

来自changelog

  

celery_前缀也已被删除,此名称空间中与任务相关的设置现在以task_,与worker _相关的工作人员设置作为前缀。