我有很多单独生成的进程,而不是从父对子生成的进程。这些进程需要向特定的进程发送消息。接收进程地址(pid)可以存储在数据库中,但进程不能共享内存中的任何公共变量。
我找不到用pythons multiprocess包实现这个目的的任何方法,我现在正在研究基于套接字的服务器,但这个问题仍然让我感到好奇,如果这种架构可以通过多处理实现 - 优势将是容易通过可拾取的物体。
答案 0 :(得分:2)
进程需要向特定进程发送消息。接收进程地址(pid)可以存储在数据库中,但进程不能共享内存中的任何公共变量。
数据库?为什么?每个人都使用一个文件,因为文件很便宜,可用,而且你只存储一个整数值。
另外。由于您要使用文件,因此您有更多有趣的选择。
每个进程都将消息写入命名管道。接收进程从命名管道接收请求。
每个进程都将消息写入文件。一个简单的锁确保一次只有一个进程可以访问该文件,从而确保序列化。接收过程从此文件中读取。
每个进程都使用HTTP向接收进程发出RESTful请求。接收过程使用精简的HTTP服务器框架来处理请求。
每个进程都使用消息队列来排队消息。接收过程使消息出列。队列是一个文件。
等。是的,还有更多。但他们开始特定于操作系统。