芹菜未选择CELERY_ALWAYS_EAGER设置

发布于 2021-01-29 14:58:54

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

关注者
0
被浏览
108
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

    变更日志

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看