如何在eventmachine中启动多个工作进程?

时间:2011-03-23 20:36:13

标签: ruby ruby-on-rails-3 rabbitmq eventmachine

我正在使用rails 3,eventmachine和rabbitmq。

当我将消息发布到队列时,我需要启动多个工作进程。

我知道eventmachine是我的场景的解决方案。

有些任务需要比其他任务更长的时间。

使用eventmachine,在大多数代码示例中,它看起来只会在任何给定时间运行单个线程/进程。

如何一次启动2-4个工作进程?

1 个答案:

答案 0 :(得分:4)

如果使用EM.defer方法,则传递给它的每个proc都将被放入线程池中(默认为20个线程)。如果更改EM.threadpool_size,则可以拥有所需的工作人员。

worker = Proc.new do
# log running job
end

EM.defer(worker)