两个Python程序之间的进程间消息传递
我们有两个在Linux服务器上运行的Python程序。现在我们想让这两个程序之间能够发送消息。目前我们想到的最好办法是建立一个TCP/IP的服务器和客户端架构,但这听起来似乎有点复杂。这样做真的是最佳实践吗?
3 个回答
0
你可以使用一个叫做 multiprocessing.managers 的东西。文档上说:“一个管理器对象控制一个服务器进程,这个进程管理共享的对象。其他进程可以通过代理来访问这些共享对象。”
在你的情况下,你可以创建一个主进程来控制其他进程,每个进程都会向主进程请求数据。
3
这其实要看你想要什么样的消息传递方式,以及这两个程序各自的角色。如果是标准的“客户端/服务器”模式,我可能会创建一个 SimpleHTTPServer
,然后用HTTP协议在它们之间进行交流。你也可以使用XMLRPCLib和客户端来进行沟通。自己手动创建一个TCP服务器,并设计一个自定义协议,我觉得这不是个好主意。你还可以考虑使用消息队列系统来进行它们之间的通信。