Как настроить сельдерей для отправки уведомлений по электронной почте, когда задачи терпят неудачу?

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

Например, я хочу, чтобы сельдерей уведомил меня, когда более трех задач терпят неудачу, или более 10 заданий повторяются.

Можно ли использовать сельдерей или полезность (например, цветок), или мне нужно написать собственный плагин?

Ответ 1

Да, все, что вам нужно сделать, это установить CELERY_SEND_TASK_ERROR_EMAILS = True и, если процесс Celery завершится неудачно, django отправит сообщение с отслеживанием всех электронных писем, установленных в настройках ADMINS.

Ответ 2

Насколько я знаю, это невозможно из коробки.

Вы можете написать собственный клиент поверх сельдерея или цветка или напрямую получить доступ к RabbitMQ.

То, что я хотел бы сделать (и я делаю), это просто регистрировать сбойные задачи и затем использовать что-то вроде Graylog2 для мониторинга файлов журналов, это работает для всей вашей инфраструктуры, а не только для Celery.

Вы также можете использовать что-то вроде NewRelic, которое непосредственно отслеживает ваши процессы и предлагает множество других функций. Хотя в NewRelic отчеты об исключениях по электронной почте несколько ограничены.

Простой клиент/монитор, вероятно, является самым быстрым решением.