在尝试替换 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'