我有一种情况,我想在Ruby中运行多个EventMachines - 有没有人有这方面的经验?(如果没有,我可以自己写一个测试用例.请继续关注).
让我们明确一点:我想自己实例化两个线程,并调用EventMachine.run两个线程,所以我真的有两个反应器循环.
原因是我正在使用AMQP gem编写异步消息总线,它使用EventMachine.这很好,但我想把它作为一个单独的模块化组件,可以在两个应用程序中使用:
有人有想法吗?
好的,深入了解EM的文档,我看到EventMachine.run的正文从这开始:
240: if reactor_running?
241: (b = blk || block) and b.call # next_tick(b)
242: else
... start the reactor ...
Run Code Online (Sandbox Code Playgroud)
这太棒了.看起来,如果你在多个线程中执行EventMachine.run,它将调度第二台机器的定义 - 传递给"run"的块 - 在已经运行的reactor上.
我喜欢这个图书馆.