Tengo una situación en la que quiero ejecutar varias EventMachines en Ruby: ¿alguien tiene experiencia con esto? (Debo escribir un caso de prueba para hacerlo yo mismo si no. Esté atento).Multiple Ruby EventMachines en un solo proceso: ¿es posible?
Seamos claros: quiero instanciar dos hilos por mí mismo, y llamar al EventMachine.run
en ambos hilos, así que realmente tengo dos bucles del reactor.
La razón es que estoy escribiendo un bus de mensajes asíncrono con la gema AMQP, que usa EventMachine. Eso está bien, pero quiero hacer que un componente separado, modular que se puede utilizar dentro de dos aplicaciones:
- uno que tiene su propio bucle de bloqueo interfaz gráfica de usuario (que no puede ser simulado llamando garrapata de EventMachine - ¡Realmente bloques , y lo hace en una biblioteca C, así que no puedo hackearlo). Este es simple: simplemente inicie EM en su propio hilo, y comparta los mensajes entrantes entre bucles de una manera segura para hilos;
- y otra aplicación que sí se está ejecutando en un circuito del reactor, lo que potencialmente podría compartir con el código AMQP (lo cual es bueno para los problemas de seguridad de rosca - aunque no tengo para hacer frente a ellos de todos modos para la aplicación arriba). Este es el que me hizo pensar ... ¿podría compartir el código del bus de mensajes con la aplicación anterior ejecutando dos EventMachines por separado?
¿Alguien tiene pensamientos?