在尝试替换django-celery并将celery从继承的项目升级到4.x时,我很难理解实际的变化。
Celery已经设置,因为该项目使用3.x,但是从应用程序中删除djcelery时,我遇到了这个:
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
阅读docs,我对使用result_backend或celery.backend.database或其中的内容更加困惑:
CELERY_RESULT_BACKEND = 'celery.backends.database'
CELERYBEAT_SCHEDULER = 'beat_scheduler'
或
CELERY_RESULT_BACKEND: result_backend
CELERYBEAT_SCHEDULER: beat_scheduler
我是芹菜的新手,仍然熟悉细节。
答案 0 :(得分:1)
芹菜4改变了他们的设置,如下所示:http://docs.celeryproject.org/en/latest/userguide/configuration.html#new-lowercase-settings
以前版本之间的主要区别,除了较低版本 案例名称,是重命名一些前缀,如celerybeat_ to beat_,celeryd_到worker_,以及大多数顶级celery_设置 已被移入新的task_前缀。
Celery仍然可以读取旧的配置文件,所以有 不要急于转换到新的设置格式。
期望您使用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'