Сельдерей не возвращает результаты - PullRequest
7 голосов
/ 10 ноября 2010

По какой-то причине, когда я создаю и запускаю новую задачу в Celery, возникает проблема с возвратом результатов. Первая задача возвращается идеально, но для всех последующих задач результат всегда находится в состоянии ожидания. Я проверил журнал Celery, и он дает правильный результат без ошибок, но просто не может его вернуть.

Если это поможет, я использую rabbitmq в качестве моего бэкэнда.

Ответы [ 2 ]

5 голосов
/ 10 ноября 2010

Ну, оказывается, мне просто нужно было явно указать бэкэнд.

Добавление:

CELERY_RESULT_BACKEND = "amqp"

в мой файл настроек, похоже, исправило все.

1 голос
/ 16 февраля 2011

Я также получаю ту же проблему, даже если я добавляю бэкэнд 'amqp'.

Вот мой конфигурационный файл сельдерея:

BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"

CELERY_RESULT_BACKEND = "amqp"
CELERY_AMQP_TASK_RESULT_EXPIRES = 18000  # 5 hours.
CELERY_IMPORTS = ("test", )

Моя оболочка, в которой первый раз успешный, а второй зависшийЧерез некоторое время, если я снова вызываю метод, он работает.Этот шаблон повторяется.

>>> r = test.add.delay(4, 4)
>>> r.get()
8
>>> r = test.add.delay(4, 4)
>>> r.get()
^C <---------- it was hung here forever, I had to press ^C

>>> r = test.add.delay(4, 4)
>>> r.get()
8
...