Соедините два демона в Python

Каков наилучший способ соединить два демона в Python?

У меня есть демоны A и B. Я хотел бы получать данные, сгенерированные B в модуле A (возможно, двунаправленный). Оба демона поддерживают плагины, поэтому я хотел бы прекратить общение в плагинах. Какой лучший и кроссплатформенный способ сделать это?

Я знаю немного механизмов из низкоуровневых решений - совместно используемую память (C/C++), linux pipe, сокеты (TCP/UDP) и т. Д. И немного высокоуровневых - очередь (JMS, Rabbit), RPC.

Оба демона должны работать на одном хосте, но очевидно, что лучший подход - абстрагироваться от типа соединения.

Каковы типичные решения / библиотеки в Python? Я ищу элегантное и легкое решение. Мне не нужен внешний сервер, просто два процесса общаются друг с другом.

Что я должен использовать в Python для этого?

2 ответа

Вы можете использовать сокеты для связи процесса: http://docs.python.org/howto/sockets.html

Также для этого подходят вызовы удаленных процедур: Python XML RPC http://docs.python.org/library/xmlrpclib.html или Google Protobuf http://code.google.com/p/protobuf/ https://developers.google.com/protocol-buffers/docs/pythontutorial

Я не уверен, насколько интенсивен ваш трафик, но я бы порекомендовал пакет asyncore. Его довольно просто использовать и он основан на сокетах.

Я сделал командный паттерн с этим давным-давно. Я могу выкопать код, если вам интересно.

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