芹菜多工人但只有一名工人

问题描述 投票:0回答:1

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

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个回答
1
投票

来自documentation

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

$ celery -A proj worker -B

因此,您可能需要独立运行节拍,使用:

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

© www.soinside.com 2019 - 2024. All rights reserved.