Python进程之间的通信

时间:2016-07-01 10:37:40

标签: python queue multiprocessing

我想实现一个python进程可以通信的“总线”。 “总线”B应作为python进程运行。其他Python进程C1,C2,... Cn应该能够通过名称注册到总线。注册后,C1可以通过将消息与C2的名称一起发送到总线来向C2发送消息。然后,总线应将消息路由到C2。 C2可以在自己的Queue对象中接收消息。

我觉得多处理程序包在某种程度上适合这样的任务,但我不知道如何在注册时将所需的C2消息队列传递给BUS进程,因为所有共享对象必须在创建时传递给BUS (参数)。我目前唯一的想法是保留一个消息队列池,并最初将其传递给BUS进程。

这个要求有更好的解决方案吗?也许有一个包我不知道...

由于

1 个答案:

答案 0 :(得分:1)

如果要分别启动所有进程(c1,c2,总线)。然后,您应该使用FIFOsUnix Sockets进行通信。

多处理包中的管道和队列,仅当您在生成管道时将管道副本发送到子进程时才适用