python - celery 不采摘 CELERY_ALWAYS_EAGER 设置

标签 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/site-packages/celery/app/task.py(520)apply_async() So somehow CELERY_ALWAYS_EAGER is not picked up and has no effect on app.conf.task_always_eager

来自 pdb 的更多信息:

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

什么会导致这种情况?我知道 Celery 4.x 正在从旧设置名称过渡到新名称,但他们仍然 promise 仍会使用旧设置名称。

最佳答案

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

更准确地说,所有大写设置已被弃用,有利于直接配置 celery 应用程序对象,并且一些已命名为使用 task_worker_ 作为字首。由于全大写设置仍然具有向后兼容性,因此这也间接重命名了全大写设置。

来自changelog :

The celery_ prefix has also been removed, and task related settings from this name-space is now prefixed by task_, worker related settings with worker_.

关于python - celery 不采摘 CELERY_ALWAYS_EAGER 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43933022/

相关文章:

python - 从 Celery 中过滤和删除任务

python - 获取数据帧的协方差返回

python - 使用 Cloud Source 存储库设置 Google Cloud Function 时出现 ModuleNotFoundError

python pandas应用for循环和groupby函数

python - 这个装饰器如何调用 'register' 方法?

Celery单任务持久化数据

python - 如何在pygame中检测两个图像的碰撞

django - 一次在 django admin 中创建多个对象

python - Django的manage.py同步数据库错误

django - 我如何将参数传递给 celery 任务?