CELERY_ROUTES должен быть CELERY_TASK_ROUTES
http://docs.celeryproject.org/en/latest/userguide/configuration.html
потратил несколько часов, прежде чем понять это :(
Я предполагаю, что то же самое относится к CELERY_QUEUES
не могли бы вы отправить pr с предлагаемыми правками?
это связано с https://github.com/celery/celery/pull/4510
Документы на самом деле верны, но мне потребовалось некоторое время, чтобы понять, почему — я объясню, если это поможет другим.
CELERY_ROUTES
— старое имя параметра сельдерея, которое теперь заменено на task_routes
. Однако, если вы хотите указать настройки Celery в файле настроек _Django_, они должны быть в верхнем регистре, как того требует документация Django. Это будет означать добавление TASK_ROUTES
в ваш файл настроек Django, но во избежание конфликта с другими настройками django рекомендуется добавлять к настройкам сельдерея префикс CELERY_
, что приведет к добавлению, например, CELERY_TASK_ROUTES
в файл настроек Django. Затем ваш код загрузит это в приложение celery, выполнив что-то вроде этого:
app.config_from_object('django.conf:settings', namespace='CELERY')
Это приведет к тому, что Celery возьмет CELERY_TASK_ROUTES
, удалит префикс пространства имен, чтобы получить TASK_ROUTES
, и уменьшит регистр, чтобы получить task_routes
. В результате он установит конфигурацию сельдерея через новое имя.
В итоге:
CELERY_ROUTES
— старое название параметра сельдерея.CELERY_TASK_ROUTES
— это изменение имени нового параметра с префиксом в верхнем регистре, обычно используемое для установки имени нового параметра из файла настроек Django.Надеюсь, это поможет.
(На основе моего более короткого комментария к этому ответу о переполнении стека )
Самый полезный комментарий
Документы на самом деле верны, но мне потребовалось некоторое время, чтобы понять, почему — я объясню, если это поможет другим.
CELERY_ROUTES
— старое имя параметра сельдерея, которое теперь заменено наtask_routes
. Однако, если вы хотите указать настройки Celery в файле настроек _Django_, они должны быть в верхнем регистре, как того требует документация Django. Это будет означать добавлениеTASK_ROUTES
в ваш файл настроек Django, но во избежание конфликта с другими настройками django рекомендуется добавлять к настройкам сельдерея префиксCELERY_
, что приведет к добавлению, например,CELERY_TASK_ROUTES
в файл настроек Django. Затем ваш код загрузит это в приложение celery, выполнив что-то вроде этого:Это приведет к тому, что Celery возьмет
CELERY_TASK_ROUTES
, удалит префикс пространства имен, чтобы получитьTASK_ROUTES
, и уменьшит регистр, чтобы получитьtask_routes
. В результате он установит конфигурацию сельдерея через новое имя.В итоге:
CELERY_ROUTES
— старое название параметра сельдерея.CELERY_TASK_ROUTES
— это изменение имени нового параметра с префиксом в верхнем регистре, обычно используемое для установки имени нового параметра из файла настроек Django.Надеюсь, это поможет.
(На основе моего более короткого комментария к этому ответу о переполнении стека )