Как установить максимальное задание на ребенка в сельдерее с Джанго? - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь установить некоторые настройки для Celery в моей настройке Django, но куда бы я ни поместил это:

CELERYD_MAX_TASKS_PER_CHILD=1

, это всегда позволяет запускать несколько задач одновременно.Я попытался поместить это в settings.py и proj.settings.Мой celery.py выглядит следующим образом:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')

app = Celery('proj', backend='redis://', broker='redis://localhost')


# Using a string here means the worker doesn't have to serialize
# the configuration object to child processes.
# - namespace='CELERY' means all celery-related configuration keys
#   should have a `CELERY_` prefix.
app.config_from_object('django.conf:settings', namespace='CELERY')

# Load task modules from all registered Django app configs.
app.autodiscover_tasks()

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Место, куда он должен идти, settings.py:

CELERY_WORKER_CONCURRENCY = 1   # this is the one I was actually looking for
CELERY_MAX_TASKS_PER_CHILD = 1
0 голосов
/ 12 июня 2018

По умолчанию ограничения отсутствуют.

Попробуйте

from celery import conf
conf.CELERYD_MAX_TASKS_PER_CHILD = 1 #max_tasks_per_child

Кроме того, вы можете передать его через cmd в качестве параметра при запуске (зависит от версии):

--maxtasksperchild=1 

или

--max-tasks-per-child=1

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...