Сельдерей продолжает создавать очереди на кроличом, пиллинг на всем протяжении

Вопрос:

Используя сельдерей (3.1.8 +) с django 1.6, все задачи определены для игнорирования результатов (это правильный синтаксис?)

@shared_task(ignore_result=True)
def somefunc():
pass

Когда я смотрю на очереди rabbitmq, я вижу все больше очередей, созданных сельдереем, с такими именами, как:

19926fa9965e40c19ed9640c2b42ce1e

и содержать одно сообщение (похожее на следующее):

correlation_id: 19926fa9-965e-40c1-9ed9-640c2b42ce1e приоритет: 0 delivery_mode: 2 заголовки: content_encoding: бинарное content_type: применение/х-питон-сериализации Полезная нагрузка 118 байт Кодирование: base64 gAJ9cQEoVQZzdGF0dXNxAlUHU1VDQ0VTU3EDVQl0cmFjZWJhY2txBE5VBnJlc3VsdHEFTlUHdGFza19pZHEGVSQxOTkyNmZhOS05NjVlLTQwYzEtOWVkOS02 NDBjMmI0MmNlMWVxB1UIY2hpbGRyZW5xCF11Lg ==

Если я установлю сельдерей на “всегда нетерпеливый” режим, тогда проблема будет решена, но это, очевидно, не является хорошим решением для производственного сервера.

Любые подсказки? Связано ли это с опцией ignore_result? и где-то есть какая-то недостающая задача? что-то другое?

Спасибо за помощь

Лучший ответ:

Я не уверен, как django или ваш код определяет @shared_task, но вы пытались явно установить в нем очередь?

@shared_task(ignore_results=True, queue="myexamplequeue")

Это применит сообщение к myexamplequeue всякий раз, когда вы вызываете .delay() или .apply_async() на somefunc.

Оцените статью
TechArks.Ru
Добавить комментарий