如何协调 celerybeat 守护进程集群?

Vas*_*nov 1 concurrency mongodb celery celerybeat

我有一个由三台机器组成的集群。我想celery beat在这些上奔跑。我有几个相关问题。

\n\n
    \n
  1. Celery 有持久调度程序的概念。只要我的日程安排仅包含 crontab 条目并且由 静态定义CELERYBEAT_SCHEDULE,我是否需要保留它?
  2. \n
  3. 如果这样做,那么我是否必须确保该存储在集群的所有机器之间同步?
  4. \n
  5. 是否djcelery.schedulers.DatabaseScheduler自动处理并发节拍守护进程?也就是说,如果我只使用 运行三个节拍守护进程DatabaseScheduler,我是否可以免受重复任务的影响?
  6. \n
  7. 有没有类似DatabaseScheduler但基于 MongoDB 的东西,没有 Django ORM?像 Celery\xe2\x80\x99s 一样拥有 MongoDB 代理和结果后端。
  8. \n
\n

mhe*_*her 5

目前 Celery 不支持多个并发 celerybeat 实例。

您必须确保一次只运行一个调度程序,否则最终会出现重复的任务。使用集中式方法意味着调度不必同步,并且服务可以在不使用锁的情况下运行。

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