Передача сообщений между удаленными MailboxProcessors?

Я использую MailboxProcessor классы для того, чтобы держать отдельных агентов, которые делают свое дело. Обычно агенты могут общаться друг с другом в одном и том же процессе, но я хочу, чтобы агенты общались друг с другом, когда они находятся в разных процессах или даже на разных машинах. Какой механизм лучше всего подходит для осуществления связи между ними? Есть ли какое-то стандартное решение?

Обратите внимание, что я использую экземпляры Ubuntu для запуска агентов.

1 ответ

Решение

Я думаю, что вам нужно написать свои собственные подпрограммы для сериализации сообщений, передать их через границы процесса и затем отправить их на другую сторону. Это также потребует внедрения системы идентификаторов, где каждый почтовый ящик имеет идентификатор, и процессы могут отправлять сообщения на идентификаторы, а не просто в Mailbox.Send. Это нелегко, поскольку локальные ящики будут иметь доступ к локальной памяти, а удаленные почтовые ящики - нет.

Я бы посмотрел на что-то вроде RPyC (http://rpyc.wikidot.com/), так как он предоставляет протокол, похожий на тот, который вы ищете.

В основном ответ "нет", на самом деле нет хорошего способа сделать это.

Другие вопросы по тегам