Сельдерей не может решить, есть ли у него бэкэнд результата или нет - PullRequest
2 голосов
/ 14 июля 2020
• 1000
NotImplementedError: Starting chords requires a result backend to be configured

Celery настроен следующим образом:

Celery(__name__, broker="redis://redis:6379/10", backend="redis://redis:6379/11", tasks_acks_late=True)

Задачи - это функции, украшенные @app.task(base=MyBaseTask, bind=True), и задача верхнего уровня построена таким образом, что там будут аккорды. Задача верхнего уровня выполняется как my_task.delay(), и это строка, которая вызывает исключение.

Я понимаю, почему мне нужен результат, поддерживаемый для выполнения моей задачи, но я не понимаю, почему он думает, что это не настроен.

Есть идеи, что мне здесь может не хватать?

РЕДАКТИРОВАТЬ: может быть важно отметить, что у меня одна и та же кодовая база развернута на двух модулях k8s, один в качестве API сервер и один как работник сельдерея. Я вызываю .delay() на сервере API и ожидаю, что работник возьмет задачу и запустит ее. Это вызов .delay() модуля API, который вызывает исключение. Каждый из двух модулей создает собственное приложение Celery, поэтому мне интересно, вызывает ли это мою проблему?

...