2016-04-26 2 views
1

Я разделил сельдерей на следующие частиНекоторых неясностей относительно сельдерея в питоне

  1. Сельдерей
  2. сельдерей рабочего
  3. сельдерея демон
  4. Брокер: Rabbimq или SQS
  5. Очередь
  6. Результата серверной
  7. Монитор сельдерея (цветок)

Мое понимание

  1. Когда я ударил задачу сельдерея в Джанго е г tasks.add (1,2). Затем сельдерей добавляет эту задачу в очередь. Я смущен, если тот 4 или 5 в приведенном выше списке
  2. Когда задача идет в очередь Тогда работник получает эту задачу и удалить из очереди
  3. Результат выполнения этой задачи сохраняется в Результата Backend

Мои Беспорядки

  1. Что разница между сельдереем демоном и сельдереем рабочего
  2. ли RabbitMQ делает работу очереди. Означает ли это, что задачи сохраняются в Rabitmq или SQS.
  3. Что делает цветок. наблюдает ли он рабочих или задачи или очереди или результаты

ответ

0

Во-первых, просто чтобы объяснить, как это работает ненадолго. В вашем коде есть клиент сельдерея. Вы вызываете tasks.add(1,2) и создается новое Celery Task. Эта задача передается Broker в очередь. Да, очередь сохраняется в Rabbimq или SQS. Celery Daemon всегда работает и слушает новые задачи. Когда в очереди возникает новая задача, она запускает новый Celery Worker для выполнения работы.

Чтобы ответить на ваши вопросы:

  1. сельдерей демон всегда работает, и он начинает рабочий сельдерея.

  2. Да Rabitmq или SQS выполняет работу в очереди.

  3. С помощью монитора сельдерея вы можете отслеживать, сколько задачи выполняются, сколько будут завершены, что размер очереди и т.д.

0

Я думаю, что ответ от nstoitsev имеет хорошие намерения, но создать некоторую путаницу. Итак, давайте попробуем немного разъяснить.

  • Celery worker процесс сельдерей ответствено в выполнении задач, когда настроен для работы в фоновом режиме, чем часто называют сельдерей демона. Таким образом, вы можете рассмотреть эти две вещи. Чтобы уточнить путаницу в ответе nstoitsev, каждый рабочий может иметь параметр параллелизма, который может быть больше 1. Когда это так, каждый работник сельдерея может создать N дочернего работника до достижения параметра параллелизма для выполнения задачи в параллельно это часто называют рабочим.
  • Брокер держит очереди и обменивает это означает, что работник сельдерея может подключиться к брокеру, используя протокол AMQP, и публиковать или потреблять сообщения.
  • Цветок способен контролировать кластер сельдерея, используя сам брокер. В принципе способен receive events от всех работников. Цветок также работает, если у вас есть Result Backend, что btw по умолчанию работает с сельдереем Celery result backend.

Надеюсь, это поможет.

+0

Возможно вручную выполнить повтор неудавшейся задачи или перенести эту неудачную задачу в другую очередь для повторной отправки позже – Karl

+0

Привет, это был бы другой вопрос, и правила переполнения стека понятны, если вы не используете комментарии в чате. В любом случае эта страница документа может помочь с вашим вопросом. http://docs.celeryproject.org/en/latest/userguide/calling.html?highlight=retry#retry-policy –

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