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

У меня кластер из трех машин. Я хочу бежать celery beat на тех. У меня есть несколько связанных вопросов.

  1. У сельдерея есть это понятие постоянного планировщика. Пока мой график состоит только из записей в crontab и статически определяется CELERYBEAT_SCHEDULEнужно ли вообще это настаивать?
  2. Если я это сделаю, то должен ли я обеспечить синхронизацию этого хранилища между всеми компьютерами кластера?
  3. Есть ли djcelery.schedulers.DatabaseScheduler автоматически позаботиться о параллельных бит-демонах? То есть, если я просто запустил три демона удара с DatabaseSchedulerя в безопасности от повторяющихся задач?
  4. Есть ли что-то вроде DatabaseScheduler но на основе MongoDB, без Django ORM? Например, собственный брокер MongoDB в Celery и бэкэнд-результат.

1 ответ

Решение

В настоящее время Celery не поддерживает несколько одновременных экземпляров celerybeat.

Вы должны убедиться, что одновременно запускается только один планировщик, в противном случае у вас будут дублирующиеся задачи. Использование централизованного подхода означает, что расписание не нужно синхронизировать, и служба может работать без использования блокировок.

http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

Другие вопросы по тегам