2010-11-10 3 views
7

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

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

+0

Какая версия сельдерея? Что вы используете для хранения результатов? (CELERY_RESULT_BACKEND) – asksol

+0

Версия 2.2 и rabbitmq - мой бэкэнд. – veered

+0

Подождите. Извините, это не имеет никакого смысла. Я не настраивал ни одну базу данных или не менял никаких настроек конфигурации. Означает ли это, что он будет по умолчанию AMQP? – veered

ответ

5

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

Добавление:

CELERY_RESULT_BACKEND = "amqp" 

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

1

Я также получаю ту же проблему, даже если я добавляю бэкэнд «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 
Смежные вопросы