目前我正在使用docker compose
,其中我已将celery指定为服务,其中q1、q2、q3、q4和q5
是一些不同的队列,我想要为每个队列分配不同的并发性。
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
我在某处读到过有关 celery multi 的内容,但不知道它是否适合我的用例。
最佳答案
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 ...
,它会给您它将运行的工作命令。
关于django - 为了在docker中运行celery队列,我想指定多个具有不同并发度的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74441677/