芹菜:如何将一些特定数量的工人分配到不同的队列?
Celery: how to assign some specific number of workers to different queues?
我有一个 celery
应用程序使用大量队列并发 gevent
。
对于每个队列,我需要保证一定数量的工人,但每个队列的数量都不同。例如:
- qA 必须有 10
- qB 必须有 25
- qN必有M等
由于队列总数很大,我想避免为每个队列启动专用 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 个工人:第一个 node1
从 queue1
消耗并发 5,第二个 node2
从 queue2
消耗并发 10。
看看multi.py
docstring
我有一个 celery
应用程序使用大量队列并发 gevent
。
对于每个队列,我需要保证一定数量的工人,但每个队列的数量都不同。例如:
- qA 必须有 10
- qB 必须有 25
- qN必有M等
由于队列总数很大,我想避免为每个队列启动专用 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 个工人:第一个 node1
从 queue1
消耗并发 5,第二个 node2
从 queue2
消耗并发 10。
看看multi.py
docstring