如何沟通两个单独的python进程?

Rob*_*mba 5 python parallel-processing process multiprocessing

我有两个python程序,我想传达它们.
它们都是系统服务,并且它们都不是由父进程分叉的.

有没有办法在不使用套接字的情况下执行此操作?
(例如,通过创建一些队列 - >序列化它 - >通过其他进程反序列化并执行通信;或者写入执行通信的文件进程ID,然后创建获取进程ID的魔术结构并向此进程发送一些消息... )

该解决方案应该适用于Linux和Windows.

zee*_*kay 5

你最好的选择是ZeroMQ,它是专为 IPC 设计的,并且在 IPC 上速度非常快(也支持 TCP/多播消息传递)。Python 绑定非常好,而且易于使用。这里有一篇关于使用 Python 的 ZeroMQ 的很好的介绍:http : //nichol.as/zeromq-an-introduction。如果你打算在多台机器上扩展它,AMQP(这是一个消息队列协议)会很好看,有很多很棒的库可以使用 AMQP for python。我真的很喜欢昆布芹菜。你也可以考虑twisted,它为你提供了相当多的通信选项,以及一个很好的事件循环来启动。