我有两个 python 程序,我想对它们进行通信。
它们都是系统服务,都不是由父进程 fork 的。
有没有什么方法可以在不使用套接字的情况下做到这一点?
(例如,通过创建一些队列 -> 序列化它 -> 由其他进程反序列化并执行通信;或者写入执行通信的文件进程ID,然后创建获取进程ID并向该进程发送一些消息的神奇结构...... )
该解决方案应该适用于 Linux 和 Windows。
你最好的选择是ZeroMQ http://www.zeromq.org/,它是专为 IPC 设计的,并且速度极快(还支持 TCP/多播消息传递)。 Python 绑定非常好,并且易于使用。这里有一个关于 ZeroMQ with Python 的很好的介绍:http://nichol.as/zeromq-an-introduction http://nichol.as/zeromq-an-introduction。如果您计划将其扩展到多台机器上,AMQP(这是一种消息队列协议)将是一个不错的选择,有很多很棒的库可用于在 python 中使用 AMQP。我很喜欢kombu https://github.com/ask/kombu and celery http://celeryproject.org/。你也可以考虑一下twisted http://twistedmatrix.com/trac/,它为您提供了相当多的通信选项,以及一个很好的事件循环来启动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)