2012-01-13 2 views
4

В настоящее время я использую библиотеку расширений C для Python, но она, похоже, имеет утечки памяти. Задачи, которые выполняются на моем celeryd, делают что-то, используя эту библиотеку расширений C, и celeryd ест много памяти примерно через час. Я не могу исправлять эту библиотеку расширений C по многим причинам, но вместо этого хочу развить процессы для каждой задачи в Celery. Есть ли такие варианты для сельдерея?Процессы вилки для каждой задачи в сельдерей

ответ

9

Вы можете использовать опцию CELERYD_MAX_TASKS_PER_CHILD или --maxtasksperchild переключатель celeryd.

Для перезапуска рабочих процессов после каждой задачи:

CELERYD_MAX_TASKS_PER_CHILD=1

https://celery.readthedocs.org/en/latest/userguide/workers.html#max-tasks-per-child-setting

+0

Каковы потенциальные недостатки Разветвляющихся для каждой новой задачи? – grokpot

Смежные вопросы