Можно ли указать, что этот task.delay или task.apply_async должен завершиться ошибкой, если celeryd не запущен? - PullRequest
0 голосов
/ 19 мая 2011

Я использую djcelery и djkombu. Я бы использовал RabbitMQ (так как это рекомендуемый вариант), но RabbitMQ использует слишком много памяти на моем VPS, и я нахожусь в дешевке.

Я думаю, что было бы неплохо, если бы в моем приложении было сгенерировано исключение, если мой код пытается запланировать задачу, а celeryd не запускается. Это своего рода резервный план для наблюдения за celeryd супервизором, nagios и т. Д.

Сначала я думал, что настройка immediate сделает это, но она не работает с моей конфигурацией Django ORM.

1 Ответ

0 голосов
/ 02 июня 2011

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

...