2

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

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

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

有些任务会比其他任务花费更长的时间。

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

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

4

1 回答 1

4

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

worker = Proc.new do
# log running job
end

EM.defer(worker)
于 2011-03-23T20:44:43.083 回答