Процессы, задачи и системные процессы пула сельдерея и пространство памяти - PullRequest
1 голос
/ 18 октября 2019

Каждое выполнение задачи в уникальном пространстве процессов?

  • Производят ли процессы Celery (не Master) процессы для каждого выполнения задачи?
  • Другими словами, каждый ливыполнение задачи через новый процесс, порожденный процессом рабочего пула?

Или это другой путь?

  • задача выполняется как часть процесса рабочего пула?
  • Одно из следствий этого: если задача сельдерея опирается на данные, хранящиеся в пространстве памяти процесса, эти данные являются частью процесса рабочего пула, который его выполняет. И все задачи, выполняемые процессом рабочего пула, имеют доступ к этой копии данных.

1 Ответ

1 голос
/ 18 октября 2019

Эти детали зависят от модели параллелизма , которую вы выбираете для своих работников.

В модели prefork по умолчанию (на основе процессов) каждая задача выполняется внутри одной из предварительноразветвленные процессы (рабочие процессы). Так что да - это пул процессов. Вы можете настроить Celery для создания нового рабочего процесса для каждой задачи, но это не поведение по умолчанию. По умолчанию Celery не заменяет старые рабочие процессы новыми, но вы можете контролировать это с помощью параметра worker_max_tasks_per_child .

...