спасательная работника на нескольких серверах


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

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

Мне нравится первое решение. Но есть ли в этом какое-то ограничение?

Спасибо.

1 2

1 ответ:

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

Очередей спасательная работа должна использоваться, чтобы классифицировать и систематизировать разные виды работ.

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

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

Например, с 6 рабочими и 3 типами queus:

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 работников будут заблокированы, если есть рабочие места обслуживания, которые должны произойти.

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