5

在 Python 中连接两个守护进程的最佳方法是什么?

我有守护进程 A 和 B。我想在 A 的模块中接收 B 生成的数据(可能是双向的)。两个守护进程都支持插件,所以我想关闭插件中的通信。最好的跨平台方法是什么?

我知道一些低级解决方案的机制——共享内存(C/C++)、linux 管道、套接字(TCP/UDP)等,以及一些高级——队列(JMS、Rabbit)、RPC。

两个守护进程都应该在同一台主机上运行,​​但显然更好的方法是从连接类型中抽象出来。

python中典型的解决方案/库是什么?我正在寻找一个优雅而轻量级的解决方案。我不需要外部服务器,只需要两个进程相互通信。

我应该在 python 中使用什么来做到这一点?

4

2 回答 2

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

于 2012-06-23T22:17:29.200 回答
0

我不确定您的流量有多大,但我会推荐asyncore包。它使用起来相当简单,它基于套接字。

我很久以前就用这个做了一个命令模式。如果您有兴趣,我可以挖掘代码。

于 2012-06-25T08:54:07.270 回答