我正在运行Django 1.8 + Celery 4.0.2
Celery配置得很好,可以在redis后端本地运行我的Django任务。
但是当我尝试使用CELERY_ALWAYS_EAGER = True
设置时,
此设置无效。其他设置不是这种情况,例如CELERY_TIMEZONE
具体来说,在pdb
我看到app.conf.task_always_eager
是False
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正在从旧设置名称转换为新设置名称,但他们仍然承诺仍会使用旧设置名称。
答案 0 :(得分:19)
CELERY_ALWAYS_EAGER
已在版本4.0 +中重命名为CELERY_TASK_ALWAYS_EAGER
。
更准确地说,全部大写设置已被弃用,有利于直接配置芹菜应用程序对象,有些已被命名空间以使用task_
或worker_
作为前缀。由于全部大写设置仍具有向后兼容性,因此也间接重命名为全大写设置。
来自changelog:
celery_前缀也已被删除,此名称空间中与任务相关的设置现在以task_,与worker _相关的工作人员设置作为前缀。