Resque работник на нескольких серверах - PullRequest
2 голосов
/ 31 августа 2011

Из-за интенсивного фонового процесса нам нужно несколько серверов, которые просто выполняют фоновые процессы.Мы используем Resque для обработки фоновых заданий.Поскольку работники resque на каждом сервере будут выполнять аналогичные задачи, что будет лучшим способом для этого?

  1. Запускать рабочие на каждом компьютере, каждый обрабатывая все очереди.
  2. Разделите очереди между работниками на каждом сервере, чтобы работники на одном сервере отвечали за обработку половины очередей, а работники - за остальные для остальных очередей.* Мне нравится первое решение.Но есть ли какое-либо ограничение в этом?

    Спасибо.

1 Ответ

13 голосов
/ 31 августа 2011

Вы сможете без проблем распределить сотрудников Resque на любое количество серверов.

Рабочие очереди Resque должны использоваться для классификации и организации различных типов работы.

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

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

Например, с 6 работниками и 3 типами очередей:

Queues:
-------
critical - top priority jobs
email - time-sensitive, but not critical
maintenance - background work, to be done whenever

Workers w/ Queues
-----------------
1: critical, email, maintenance
2: critical, email, maintenance
3: critical, email, maintenance
4: critical, email, maintenance
5: critical, maintenance, email
6: critical, maintenance, email

Эта установка гарантирует, что критическая работа будет обработана перед любой другой работой на любом работнике. Однако, если система заполнена заданиями электронной почты, только 2/3 работников будут заблокированы, если есть задания по обслуживанию, которые должны быть выполнены.

Надеюсь, вы сможете экстраполировать этот пример на ваши очереди и приоритеты.

...