Как установить максимальное количество рабочих в очереди на сельдерей?

#python #celery #django-celery

Вопрос:

Я использую celery4.x с Django и имею более двух задач в своей celery очереди. Из-за ограничения GPU , я могу запускать не более двух одновременно. Есть ли способ позволить третьей задаче подождать и выполнить одну из двух предыдущих задач? Я установил CELERYD_CONCURRENCY пареметр в Django s settings.py , который, похоже, не работает.

Кто-нибудь знает? Спасибо

Ответ №1:

Запустите своего работника, используя аргумент параллелизма:

 celery -A proj worker -l info --concurrency 2 -Q queue_name
 

Комментарии:

1. Можем ли мы реализовать это не с помощью скрипта?

2. Именно так вы начинаете работу, и это довольно стандартный способ определения параллелизма. Существует рабочая валюта ( docs.celeryproject.org/en/stable/userguide/… ), но я никогда по-настоящему им не пользовался

3. Кажется, это для того, чтобы установить многопроцессорность для одного работника, а не для нескольких работников?

4. Да, другими словами, именно столько задач может обрабатывать один работник одновременно.

5. Добавление этого bash в мой celery конфигурационный файл, и это решает мою проблему.