Правильная замена для CELERY_RESULT_BACKEND при обновлении до Celery 4.x для django 1.11 - PullRequest
0 голосов
/ 18 мая 2018

Пытаясь заменить 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

I 'Я новичок в сельдерее, все еще знакомясь с деталями.

1 Ответ

0 голосов
/ 18 мая 2018

Celery 4 изменил свои настройки следующим образом: http://docs.celeryproject.org/en/latest/userguide/configuration.html#new-lowercase-settings

Основное различие между предыдущими версиями, кроме имен в нижнем регистре, заключается в переименовании некоторых префиксов, таких как celerybeat_ в beat_, celeryd_to 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'
...