我正在使用celery构建应用程序,最近我们有一个要求按计划运行特定任务。
我认为celerybeat非常适合这个需求,但我有一些问题:
- 是否可以运行多个celerybeat实例,以避免重复执行任务?
- 如何确保celerybeat始终处于运行状态?
到目前为止,我阅读了以下内容:https://github.com/celery/celery/issues/251和https://github.com/ybrs/single-beat
看起来应该只运行单个celerybeat实例。
我在AWS Elastic Beanstalk Docker容器中运行应用程序,而celery工作人员也是Docker容器(因此在需要时可快速扩展)。
最好让celerybeat通过supervisord与celery工作人员一起运行,但似乎这不是正确的方法。
同时,拥有单个celerybeat实例将需要手动配置/启动和监控。