芹菜:如何将一些特定数量的工人分配到不同的队列?

时间:2018-02-02 10:04:56

标签: python celery gevent celery-task celeryd

我有一个celery应用程序正在消耗大量具有gevent并发性的队列。 对于每个队列,我需要有一些保证数量的工作者,但每个队列的数量是不同的。例如:

  • qA必须有10
  • qB必须有25
  • qN必须有M等。

由于队列总量很大,我想避免为每个队列启动专用celeryd

工作人员做了很多IO,我使用-P gevent所以不关心有多少子工作人员celeryd开始。

是否有办法配置单个celeryd实例以将特定数量的工作人员分配到不同的队列?

1 个答案:

答案 0 :(得分:0)

Celery multi允许彼此独立配置工作人员。 例如

celery multi start node1 node2 -c:1 5 -Q:1 queue1 -c:2 10 -Q:2 queue2

启动2个工作者:第一个node1消耗来自queue1的并发5,第二个node2消耗来自queue2并发10。

查看multi.py docstring