我正在使用芹菜构建应用程序,最近我们需要按计划运行某些任务。
我觉得芹菜拍很适合这个,但我有几个问题:
到目前为止我读到: https://github.com/celery/celery/issues/251 和 https://github.com/ybrs/single-beat
看起来应该有一个芹菜节拍的例子在运行。
我在AWS elasticbeanstalk docker容器中运行应用程序,芹菜工人也是docker容器(因此在需要时可以快速扩展)。
最好让芹菜工和芹菜工一起通过监督,但这样做似乎不合适。
同时,要获得芹菜节拍的单一实例,需要手动提供/启动和监控。
回答你的两个问题:
如果你运行几个cellerybeat实例,你会得到重复的任务,所以afaik你应该只有一个cellerybeat实例。
我在用
supervisord
就像你提到的那样,把芹菜工人和芹菜工人当作执事来管理,所以他们应该一直在运作。我的主管配置:
您可以运行多个芹菜节拍实例,任务将不会重复。
看看芹菜.beat.Scheduler类,特别是reserve()函数。调度程序将保留一个任务,然后将其提交给网格执行。这将防止芹菜殴打的另一个实例提交相同的任务。
我们使用MongoDB作为计划任务的后备存储。下面是一个示例文档,显示任务已由一个调度程序保留。
http://celery.readthedocs.org/en/latest/reference/celery.beat.html#celery.beat.Scheduler
我刚找到了芹菜替代品:RedBeat, 博客post
不过还没用呢。
相关问题 更多 >
编程相关推荐