【问题标题】:Celery multiple workers but only one beat worker芹菜多名工人,但只有一名工人
【发布时间】:2019-08-24 20:36:54
【问题描述】:

我试图让用户安排定期任务。我还在一个容器中运行多个芹菜工人。 我对该容器的命令过去看起来像这样:

celery worker -c 4 -B -l INFO -A my.celery.app.celery --scheduler my.celery.scheduler.SchedulerClass

但发生的情况是,计划任务在运行任务时运行了 4 次。

所以我读到你应该有一个专门的工作人员。我把我的命令改成了这个:

celery worker -c 4 -l INFO -A my.celery.app.celery

并添加了另一个与运行命令完全相同的容器:

celery -l INFO -B -A my.celery.app.celery --scheduler my.celery.scheduler.SchedulerClass

希望现在只有一个节拍,不会有重复的任务。但是我仍然运行 4 个任务而不是一个。

任何关于如何做到这一点的想法都会有所帮助

【问题讨论】:

    标签: celery celerybeat periodic-task


    【解决方案1】:

    来自documentation

    您还可以通过启用 workers -B 选项将 beat 嵌入到 worker 中,如果您永远不会运行多个 worker 节点,这很方便,但它不常用,因此不建议用于生产用途:

    $ celery -A proj worker -B

    所以你可能需要独立运行 beat,使用:

    celery -l INFO -A my.celery.app.celery beat --scheduler my.celery.scheduler.SchedulerClass

    【讨论】:

      猜你喜欢
      • 2016-04-20
      • 2021-02-21
      • 2014-07-14
      • 2014-08-17
      • 2020-07-08
      • 2015-05-13
      • 1970-01-01
      • 2022-01-08
      • 2014-06-09
      相关资源
      最近更新 更多