小编典典

Celery未选择CELERY_ALWAYS_EAGER设置

python

我正在运行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 / site-packages / celery / app /
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正在从旧的设置名称过渡到新的设置,但是他们仍然承诺仍然会使用旧的设置名称。


阅读 384

收藏
2021-01-20

共1个答案

小编典典

CELERY_ALWAYS_EAGERCELERY_TASK_ALWAYS_EAGER在4.0+版本中重命名为。

更准确地说,不赞成使用大写字母设置,而是直接配置celery应用程序对象,并且其中的几个都已命名为可以使用task_worker_用作前缀。因为仍然具有全大写设置的向后兼容性,所以这也间接重命名了全大写设置。

变更日志

celery_前缀也已删除,此名称空间中与任务相关的设置现在以task_前缀,worker相关的设置带有worker_。

2021-01-20