跨 multiprocessing.Process'es 执行 rpc 的好方法是什么?
我也愿意就以下架构提供设计建议:进程 A * 10,进程 B * 1。每个进程 A 必须与进程 B 核对是否需要查询特定项目。
所以我正在考虑为所有的 As 实现 multiprocessing.Pipe() 对象,然后让 B 监听它们中的每一个。但是,我意识到 Multiprocessing.Pipe.recv 是阻塞的。所以我真的不知道我该怎么做。(如果我使用循环来检查哪个有东西通过另一端发送,则循环将被阻塞)。
有人建议我使用twisted,但我不确定我应该如何在twisted 中执行此操作:我是否应该在所有进程A 的每个pipe.handler 上创建一个defer,然后当recv() 接收到它继续进行时并完成一定的套路?我个人知道twisted 不能很好地与多处理混合,但是我已经对作为多处理实现的子进程的twisted 进行了一些测试,我认为这次它是可行的。
有什么建议吗?