Celeryd запускает слишком много процессов
Как вы гарантируете, что celeryd работает только как один процесс? Когда я бегу manage.py celeryd --concurrency=1
а потом ps aux | grep celery
Я вижу 3 запущенных экземпляра:
www-data 8609 0.0 0.0 20744 1572 ? S 13:42 0:00 python manage.py celeryd --concurrency=1
www-data 8625 0.0 1.7 325916 71372 ? S 13:42 0:01 python manage.py celeryd --concurrency=1
www-data 8768 0.0 1.5 401460 64024 ? S 13:42 0:00 python manage.py celeryd --concurrency=1
Я заметил похожую проблему с сельдереем, который всегда выполняется в 2 процесса.
1 ответ
По этой ссылке. Число процессов будет равно 4: один основной процесс, два дочерних процесса и один процесс сельдерея, также если вы используете FORCE_EXECV, есть другой процесс, запущенный для очистки семафоров.
Если вы используете разработку celery + django-celery и используете RabbitMQ или Redis в качестве брокера, то он не должен использовать более одного дополнительного потока (ни один, если установлен CELERY_DISABLE_RATE_LIMITS)