Восстановление сельдерея из базы данных - PullRequest
8 голосов
/ 16 декабря 2011

У меня Celeryd / RabbitMQ работает на коробке Fedora, общаясь с MySQL База данных на отдельной коробке. Я заметил, что в редких случаях, если есть даже малейшая проблема с подключением к базе данных MySQL (даже на несколько секунд) celeryd вылетит с ошибкой:

OperationalError: (2003, "Can't connect to MySQL server on
'mydatabasedomain' (111)")

и не удается восстановить соединение, даже когда база данных снова становится доступной.

В настоящее время я вынужден вручную перезапустить сервис celeryd, чтобы получить сельдерей снова бежит Есть ли более изящный и автоматический способ оправиться от этих типов событий? Есть ли какая-нибудь особенность сельдерея для просто тихо подождите, войдите в журнал OperationalError и восстановите соединение полностью выйти?

1 Ответ

0 голосов
/ 06 июня 2014

Я не знаю ни одного способа исправить это, просто используя флаг конфигурации, но вы можете рассмотреть возможность запуска вашего работника с помощью супервизора (с. http://supervisord.org).

Это даже упоминается в документации по сельдерею(http://celery.readthedocs.org/en/latest/tutorials/daemonizing.html#supervisord) включая ссылку на некоторые примеры конфигурационных файлов.

...