У нас есть компонент, написанный на Groovy (назовем его «G-компонент»), который должен взаимодействовать с компонентом, написанным на Scala / AKKA (назовем его «A-компонент»).
Что больше всего соответствует нашим потребностям, так это очередь сообщений:
"G-COMPONENT" <==> in memory messaging queue <==> "A-COMPONENT"
Для "G-COMPONENT" жизнь проста:
queue.send( message )
message = queue.receive()
Для компонента AKKA это кажется немного более сложным, поскольку существует актер, который должен «обрабатывать» / «получать» сообщения и иметь возможность «отправлять» сообщения обратно.
Проблема заключается в части «получения», так как теперь ей нужно войти в собственный цикл для прослушивания сообщений из очереди.Который .. отключает его как AKKA Actor, так как, когда он находится в этом цикле, он не может получать никаких сообщений AKKA.
Был бы признателен за любую помощь в чистом решении для этого, без реализации плагина AKKA«Эта конкретная реализация очереди» Actor mailbox.