Как мне скоординировать группу демонов биений сельдерея?
У меня кластер из трех машин. Я хочу бежать celery beat
на тех. У меня есть несколько связанных вопросов.
- У сельдерея есть это понятие постоянного планировщика. Пока мой график состоит только из записей в crontab и статически определяется
CELERYBEAT_SCHEDULE
нужно ли вообще это настаивать? - Если я это сделаю, то должен ли я обеспечить синхронизацию этого хранилища между всеми компьютерами кластера?
- Есть ли
djcelery.schedulers.DatabaseScheduler
автоматически позаботиться о параллельных бит-демонах? То есть, если я просто запустил три демона удара сDatabaseScheduler
я в безопасности от повторяющихся задач? - Есть ли что-то вроде
DatabaseScheduler
но на основе MongoDB, без Django ORM? Например, собственный брокер MongoDB в Celery и бэкэнд-результат.
1 ответ
Решение
В настоящее время Celery не поддерживает несколько одновременных экземпляров celerybeat.
Вы должны убедиться, что одновременно запускается только один планировщик, в противном случае у вас будут дублирующиеся задачи. Использование централизованного подхода означает, что расписание не нужно синхронизировать, и служба может работать без использования блокировок.
http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html