我正在使用rails 3,eventmachine和rabbitmq。
当我将消息发布到队列时,我需要启动多个工作进程。
我知道eventmachine是我的场景的解决方案。
有些任务需要比其他任务更长的时间。
使用eventmachine,在大多数代码示例中,它看起来只会在任何给定时间运行单个线程/进程。
如何一次启动2-4个工作进程?
答案 0 :(得分:4)
如果使用EM.defer方法,则传递给它的每个proc都将被放入线程池中(默认为20个线程)。如果更改EM.threadpool_size,则可以拥有所需的工作人员。
worker = Proc.new do
# log running job
end
EM.defer(worker)