目前我使用的是docker compose
,其中我指定了芹菜作为服务,其中q1,q2,q3 ,q4 and q5
是一些不同的队列,我想分配每个队列不同的concurrency.
celery:
restart: always
build:
context:
dockerfile: Dockerfile
container_name: celery
command: celery --app=celery:app worker --concurrency=8 --loglevel=DEBUG -Q q1,q2,q3,q4,q5
depends_on:
- redis
- web
我在某处读到芹菜多,但不知道它是否适合我的用例。
Multi适合您的用例。
celery multi start
q1w q2w q3w
-c:q1w 2 -c:q2w,q3w 4
-Q:q1w q1 -Q:q2w q2 -Q:q3w q3
q1w→Q1 worker(我们可以启动命名节点,q1w是名称)。
我们可以为每个节点定义队列(-Q)和并发(-c)选项或多个节点(逗号分隔)。
你可以用其他选项扩展它。
详细信息请参考此链接https://docs.celeryq.dev/en/stable/reference/celery.bin.multi.html
PS:你可以做celery multi show ...
,它会给你工作命令,它会运行。