我有一种情况,我想在Ruby中运行多个EventMachines - 有没有人有这方面的经验? (如果没有,我可以写一个测试用例来自己做,敬请关注)。多个Ruby EventMachines在一个进程中:可能吗?
让我们清楚:我想自己实例化两个线程,并在两个线程中调用EventMachine.run
,所以我确实有两个反应器循环。
原因是我正在使用EventMachine编写AMQP gem的异步消息总线。这很好,但我要特别强调的是可以在两个应用程序中使用一个单独的,模块化的组件:
- 一个有其自己的阻塞GUI循环(即不能由EventMachine的调用蜱进行模拟 - 它确实块,它在C库中完成,所以我不能破解它)。这很简单 - 只需在自己的线程中启动EM,并以线程安全的方式在循环之间共享传入消息;
- 和另一个应用程序本身运行在一个反应器循环,我可能与AMQP代码共享(这对线程安全问题很好 - 尽管我必须针对上述应用程序解决它们)。这是让我思考的......我可以通过运行两个独立的EventMachines来与上述应用共享消息总线代码吗?
有人有想法吗?