升级到 django 1.11 的 Celery 4.x 时正确替换CELERY_RESULT_BACKEND



在尝试替换 django-celery 并将芹菜从继承的项目升级到 4.x 时,我很难理解效果的真正变化。

由于该项目使用 3.x,因此已经设置了芹菜,但是在从应用程序中删除 djcelery 时,我遇到了这个:

CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend' CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'

阅读文档,我对使用result_backend或celery.backend.database或哪个感到困惑:

CELERY_RESULT_BACKEND = 'celery.backends.database' CELERYBEAT_SCHEDULER = 'beat_scheduler'

CELERY_RESULT_BACKEND: result_backend CELERYBEAT_SCHEDULER: beat_scheduler

我是芹菜的新手,仍然熟悉细节。

Celery 4 更改了它们的设置,如下所示: http://docs.celeryproject.org/en/latest/userguide/configuration.html#new-lowercase-settings

以前版本之间的主要区别,除了较低的 案例名称,是某些前缀的重命名,例如 celerybeat_ beat_、celeryd_到worker_以及大多数顶级celery_设置 已移至新的task_前缀。

芹菜仍然能够读取旧的配置文件,所以有 不急于移动到新的设置格式。

期望是您使用result_backend而不是CELERY_RESULT_BACKEND。旧大写设置到新大写设置的完整映射记录如下:http://docs.celeryproject.org/en/latest/userguide/configuration.html#new-lowercase-settings

换句话说,resut_backend是密钥的新名称,而不是新的建议值。它是作业左侧的替代品。这些是等效的:

CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
result_backend = 'djcelery.backends.database:DatabaseBackend'

同样,这些是等效的:

CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
beat_scheduler = 'djcelery.schedulers.DatabaseScheduler'

相关内容

  • 没有找到相关文章

最新更新