如何协调一组芹菜殴打守护进程?

时间:2012-11-22 08:16:08

标签: mongodb concurrency celery celerybeat

我有三台机器的集群。我想对这些运行celery beat。我有一些相关的问题。

  1. Celery有一个持久调度程序的概念。只要我的日程表只包含crontab条目并且由CELERYBEAT_SCHEDULE静态定义,我是否需要保留它?
  2. 如果我这样做,那么我是否必须确保在群集的所有计算机之间同步此存储?
  3. djcelery.schedulers.DatabaseScheduler会自动处理并发节拍守护进程吗?也就是说,如果我只使用DatabaseScheduler运行三个节拍守护进程,我是否可以避免重复任务?
  4. 有没有类似DatabaseScheduler但基于MongoDB的东西,没有Django ORM?就像Celery自己的MongoDB经纪人和结果后端一样。

1 个答案:

答案 0 :(得分:4)

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

  

您必须确保只有一个调度程序正在运行以进行计划   一次,否则你最终会遇到重复的任务。用一个   集中式方法意味着时间表不一定如此   同步,服务可以在不使用锁的情况下运行。

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