两个Python程序之间的进程间消息传递

时间:2011-05-25 07:49:04

标签: python linux python-3.x

我们在两台Linux服务器上运行两个Python程序。现在我们想在这些Python程序之间发送消息。到目前为止,最好的想法是创建一个TCP / IP服务器和客户端架构,但这似乎是一种非常复杂的方法。这是做这种事情的最佳做法吗?

3 个答案:

答案 0 :(得分:6)

我喜欢zeromq用于简单的消息传递,它非常轻巧,快速......非常灵活。根据您的具体情况,使用AMQP消息传递并不是一个坏主意,我发现kombu是一个非常好的pythonic库。您还可以使用xmlrpclib或使用bottleflask设置简单的REST API。每个选项都有它的位置,所以我会调查你所有的选择。

答案 1 :(得分:3)

这实际上取决于您想要的消息类型以及两个进程的角色。如果它是正确的“客户端/服务器”,我可能会创建一个SimpleHTTPServer,然后使用HTTP在两者之间进行通信。您还可以使用XMLRPCLib和客户端在它们之间进行通信。使用您自己的自定义协议手动创建TCP服务器对我来说听起来不错。您还可以考虑使用消息队列系统在它们之间进行通信。

答案 2 :(得分:0)

你可以拥有mulitprocessing.managers。正如doc所说:“管理器对象控制管理共享对象的服务器进程。其他进程可以使用代理访问共享对象。”

在您的情况下,您可以创建一个控制其他进程的主进程,每个进程都会调用master来获取数据。