Через пару дней мой сельдерейный сервис будет бесконечно повторять задачу снова и снова. Это несколько сложно воспроизвести, но это происходит регулярно раз в неделю или чаще в зависимости от объема обрабатываемых задач.
Я буду признателен за любые советы о том, как получить больше данных об этой проблеме, поскольку я не знаю, как ее отследить. Когда это происходит, перезапуск сельдерея временно решит эту проблему.
У меня есть один узел сельдерея с 4 рабочими (версия 3.1.23). Брокер и серверная часть результатов находятся на Redis. Я отправляю сообщения только в одну очередь и не использую celery beat.
Конфигурация в Django settings.py:
BROKER_URL = 'redis://localhost:6380'
CELERY_RESULT_BACKEND = 'redis://localhost:6380'
Соответствующая часть журнала:
[2016-05-28 10:37:21,957: INFO/MainProcess] Received task: painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647]
[2016-05-28 11:37:58,005: INFO/MainProcess] Received task: painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647]
[2016-05-28 13:37:59,147: INFO/MainProcess] Received task: painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647]
...
[2016-05-30 09:27:47,136: INFO/MainProcess] Task painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647] succeeded in 53.33468166703824s: None
[2016-05-30 09:43:08,317: INFO/MainProcess] Task painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647] succeeded in 466.0324719119817s: None
[2016-05-30 09:57:25,550: INFO/MainProcess] Task painel.tasks.indicar_cliente[defc87bc-5dd5-4857-9e45-d2a43aeb2647] succeeded in 642.7634702899959s: None
Задания отправляются по запросу пользователя с:
tasks.indicar_cliente.delay(indicacao_db.id)
Вот исходный код задачи и настройка службы celery.
Почему задачи поступают несколько раз через некоторое время работы службы? Как я могу получить последовательное поведение?
delay()
. Код, который отправляет новую задачу, и код, который обрабатывает задачи здесь - person rodorgas   schedule 02.06.2016