Ho una situazione in cui voglio eseguire più EventMachines in Ruby - qualcuno ha esperienza con questo? (Potrei scrivere un test case per farlo da solo se non lo sono. Resta sintonizzato).Multiple Ruby EventMachines in un unico processo: possibile?
Sia chiaro: voglio istanziare due thread personalmente e chiamare EventMachine.run
in entrambi i thread, quindi ho davvero due loop di reattori.
Il motivo è che sto scrivendo un bus di messaggi asincroni con la gemma AMQP, che utilizza EventMachine. Va bene, ma voglio fare che un componente separato, modulare che può essere utilizzato entro due applicazioni:
- uno che ha il suo anello di bloccaggio gui (che non può essere simulato chiamando segno di spunta dalla EventMachine - e 'davvero blocca e lo fa in una libreria C, quindi non posso modificarlo). Questo è semplice: è sufficiente avviare EM nella propria thread e condividere i messaggi in arrivo tra i loop in modalità thread-safe;
- e un'altra applicazione che stessa è in esecuzione in un ciclo di reattore, che potrei potenzialmente condividere con il codice AMQP (che è utile per problemi di sicurezza dei thread - anche se devo indirizzarli comunque per l'app precedente). Questo è quello che mi ha fatto pensare ... potrei condividere il codice del bus del messaggio con l'app di cui sopra eseguendo due EventMachines separati?
Qualcuno ha pensieri?