Для запуска очередей celery в docker я хочу указать несколько очередей с разным параллелизмом
В настоящее время я использую 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, но не знаю, подходит ли он для моего случая использования.
Мульти подходит для вашего случая использования.
celery multi start \
q1w q2w q3w
-c:q1w 2 -c:q2w,q3w 4
-Q:q1 q1w -Q:q2 q2w -Q:q3 q3w
q1w -> q1 worker (мы можем запускать именованные узлы, q1w - это имя).
Мы можем определить параметры очереди (-Q) и параллелизма (-c) для каждого узла или нескольких узлов (через запятую).
Вы можете расширить это с помощью других опций.
Обратитесь к этой ссылке для получения более подробной информации https://docs.celeryq.dev/en/stable/reference/celery.bin.multi.html
PS: вы можете сделать celery multi show ...
и он даст вам рабочие команды, которые он будет выполнять.