Для запуска очередей 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 ... и он даст вам рабочие команды, которые он будет выполнять.

Вернуться на верх