Передача сообщений между удаленными MailboxProcessors? - PullRequest
11 голосов
/ 31 января 2011

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

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

1 Ответ

3 голосов
/ 01 февраля 2011

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

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

По сути, ответ «нет», на самом деле не очень хороший способсделать это.

...