我有一種情況,我想在Ruby中運行多個EventMachines - 有沒有人有這方面的經驗? (如果沒有,我可以寫一個測試用例來自己做,敬請關注)。多個Ruby EventMachines在一個進程中:可能嗎?
讓我們清楚:我想自己實例化兩個線程,並在兩個線程中調用EventMachine.run
,所以我確實有兩個反應器循環。
原因是我正在使用EventMachine編寫AMQP gem的異步消息總線。這很好,但我要特別強調的是可以在兩個應用程序中使用一個單獨的,模塊化的組件:
- 一個有其自己的阻塞GUI循環(即不能由EventMachine的調用蜱進行模擬 - 它確實塊,它在C庫中完成,所以我不能破解它)。這很簡單 - 只需在自己的線程中啓動EM,並以線程安全的方式在循環之間共享傳入消息;
- 和另一個應用程序本身運行在一個反應器循環,我可能與AMQP代碼共享(這對線程安全問題很好 - 儘管我必須針對上述應用程序解決它們)。這是讓我思考的......我可以通過運行兩個獨立的EventMachines來與上述應用共享消息總線代碼嗎?
有人有想法嗎?