В сельдерее, какой смысл в том, чтобы несколько рабочих обрабатывали одну и ту же очередь?

В документации для celeryd-multi мы находим этот пример:

# Advanced example starting 10 workers in the background:
#   * Three of the workers processes the images and video queue
#   * Two of the workers processes the data queue with loglevel DEBUG
#   * the rest processes the default' queue.
$ celeryd-multi start 10 -l INFO -Q:1-3 images,video -Q:4,5 data
    -Q default -L:4,5 DEBUG

(Отсюда: http://docs.celeryproject.org/en/latest/reference/celery.bin.celeryd_multi.html#examples )

Что может быть практическим примером того, почему было бы хорошо иметь более одного работника на одном хосте, обрабатывающего одну и ту же очередь, как в приведенном выше примере? Разве не для этого нужна настройка параллелизма?

В частности, будет ли какая-либо практическая разница между следующими двумя строками (A и B)?:

A:

$ celeryd-multi start 10 -c 2 -Q data

B:

$ celeryd-multi start 1 -c 20 -Q data

Я обеспокоен тем, что мне не хватает некоторых ценных знаний об очередях задач из-за того, что я не понимаю этой практической разницы, и я был бы очень признателен, если бы кто-нибудь мог меня просветить.

Спасибо!


person chaimp    schedule 27.02.2013    source источник


Ответы (1)


Что может быть практическим примером того, почему было бы хорошо иметь более одного работника на одном хосте, обрабатывающего одну и ту же очередь, как в приведенном выше примере?

Отвечать:

Таким образом, вы можете запустить несколько рабочих экземпляров на одном и том же машинном узле, если:

  • Вы используете многопроцессорный пул и хотите обрабатывать сообщения параллельно. Некоторые сообщают о лучшей производительности при использовании нескольких экземпляров рабочих процессов вместо запуска одного экземпляра с множеством рабочих процессов пула.

  • Вы используете пул событий/gevent (и из-за печально известного GIL также пул «потоков») и хотите выполнять задачи на нескольких ядрах ЦП.

Ссылка: http://www.quora.com/Celery-distributed-task-queue/What-is-the-difference-between-workers-and-processes

person Tyler Long    schedule 20.05.2014