Home Articles

芹菜没有选择CELERY_ALWAYS_EAGER设置

Asked
Viewed 417 times
7

我正在运行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正在从旧设置名称转换为新设置名称,但他们仍然承诺仍旧使用旧设置名称 .

2 Answers

  • 17

    CELERY_ALWAYS_EAGER 已在4.0版中重命名为 CELERY_TASK_ALWAYS_EAGER .

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

    来自changelog

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

  • 0

    请在settings.py中设置CELERY_ALWAYS_EAGER = True后重启celery worker,看看是否有帮助 .

Related