Как запустить несколько рабочих процессов в eventmachine? - PullRequest
2 голосов
/ 23 марта 2011

Я использую рельсы 3, eventmachine и rabbitmq.

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

Я понимаю, что eventmachine - это решение для моего сценария.

Некоторые задачи займут больше времени, чем другие.

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

Как запустить одновременно 2-4 рабочих процесса?

1 Ответ

4 голосов
/ 23 марта 2011

если вы используете метод EM.defer , каждый передаваемый ему процесс будет помещен в пул потоков (по умолчанию 20 потоков).вы можете иметь столько рабочих, сколько захотите, если измените EM.threadpool_size.

worker = Proc.new do
# log running job
end

EM.defer(worker)
...