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

Celery: how to assign some specific number of workers to different queues?

我有一个 celery 应用程序使用大量队列并发 gevent。 对于每个队列,我需要保证一定数量的工人,但每个队列的数量都不同。例如:

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

Workers 做很多 IO 而我使用 -P gevent 所以不关心有多少 subworkers celeryd 启动。

有没有办法配置单个 celeryd 实例来将特定数量的工作人员分配给不同的队列?

Celery multi 允许相互独立地配置 worker。 例如

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

启动 2 个工人:第一个 node1queue1 消耗并发 5,第二个 node2queue2 消耗并发 10。

看看multi.pydocstring