Сельдерей. Уменьшить количество процессов

Есть ли способ ограничить число работников сельдерея ? У меня небольшой сервер, и сельдерей всегда создает 10 процессов на 1 ядре процессора. Я хочу ограничить это число тремя процессами.

  • Фильтр Django с регулярным выражением
  • Как отобразить упорядоченный словарь в шаблонах django?
  • Существует ли реализация HAML для использования с Python и Django
  • Вычитание двух аннотированных столбцов
  • Использование базовой проверки подлинности HTTP в среде тестирования Django
  • Пришлите email оповещение после регистрации django
  • Выражение запроса Django для вычисленных полей, которые требуют условий и литья
  • Как найти «конкретный класс» базового класса модели django
  • 3 Solutions collect form web for “Сельдерей. Уменьшить количество процессов”

    Я попытался установить параллелизм в 1 и max_tasks_per_child в 1 в файле settings.py и одновременно выполнил 3 задачи. Он просто порождает 1 процесс как Пользователь, а второй 2 – как сельдерей. Он должен просто запустить 1 процесс, а затем дождаться его завершения до запуска другого.

    Я использую сельдерей django.

    EDIT {

    Я назначал параллелизм, написав CELERYD_CONCURRENCY = 1 в файле settings.py. Но когда я посмотрел файл журнала сельдерея, используя «tail -f /var/log/celery/w1.log», я увидел значение 8, назначенное для параллелизма. Это сказало мне, что параметр setup.py не изменяет параллелизм. Чтобы исправить эту проблему, я добавил следующие строки в файл «/ etc / default / celeryd».

    # Extra arguments to celeryd CELERYD_OPTS="--concurrency=1" 

    Теперь вторая задача в очереди ждет, пока первый не будет завершен.

    }

    celery worker –concurrency option позволяет указать количество дочерних процессов, обрабатывающих очередь.

    У меня это в моем файле celeryd-config

     CELERYD_NODES=2 

    что приводит к

     $ ps -ef | grep "celery" | grep -v "grep" www-data 1783 1 0 17:50 ? 00:00:46 /usr/bin/python /opt/webapps/repo/manage.py celeryd --loglevel=INFO -n celery1.xxx-31-39-06-74-75 --logfile=/var/log/celery/1.log --pidfile=/var/run/celery/1.pid www-data 1791 1783 0 17:50 ? 00:00:01 /usr/bin/python /opt/webapps/repo/manage.py celeryd --loglevel=INFO -n celery1.xxx-31-39-06-74-75 --logfile=/var/log/celery/1.log --pidfile=/var/run/celery/1.pid www-data 1802 1 0 17:50 ? 00:00:52 /usr/bin/python /opt/webapps/repo/manage.py celeryd --loglevel=INFO -n celery2.xxx-31-39-06-74-75 --logfile=/var/log/celery/2.log --pidfile=/var/run/celery/2.pid www-data 1858 1802 0 17:50 ? 00:00:01 /usr/bin/python /opt/webapps/repo/manage.py celeryd --loglevel=INFO -n celery2.xxx-31-39-06-74-75 --logfile=/var/log/celery/2.log --pidfile=/var/run/celery/2.pid 

    Есть четыре процесса, а не два, но есть два рабочих. Похоже, что каждый рабочий поток имеет два процесса. Предположительно, если вы установите CELERYD_NODES на 3, вы получите 3 рабочих, но 6 процессов.

    Python - лучший язык программирования в мире.