我有一个celery
应用程序,从大量队列中消耗gevent
并发。 对于每个队列,我需要有一些保证数量的工作器,但每个队列的数量是不同的。例如:
- qA 必须有 10 个
- qB 必须有 25
- qN 必须有 M 等。
由于队列总数很大,我想避免为每个队列启动专用celeryd
。
工人做很多 IO,我使用-P gevent
所以不在乎启动celeryd
有多少子工人。
有没有办法配置单个celeryd
实例以将特定数量的工作器分配给不同的队列?
Celerymulti
允许彼此独立地配置工作线程。 例如
celery multi start node1 node2 -c:1 5 -Q:1 queue1 -c:2 10 -Q:2 queue2
启动 2 个工作线程:第一个node1
从具有并发 5queue1
消耗,第二个node2
从具有并发 10 的queue2
消耗。
查看multi.py
文档字符串