使用不相关进程的Python多处理

时间:2011-02-02 10:22:36

标签: python multiprocessing sockets

我有很多单独生成的进程,而不是从父对子生成的进程。这些进程需要向特定的进程发送消息。接收进程地址(pid)可以存储在数据库中,但进程不能共享内存中的任何公共变量。

我找不到用pythons multiprocess包实现这个目的的任何方法,我现在正在研究基于套接字的服务器,但这个问题仍然让我感到好奇,如果这种架构可以通过多处理实现 - 优势将是容易通过可拾取的物体。

1 个答案:

答案 0 :(得分:2)

  

进程需要向特定进程发送消息。接收进程地址(pid)可以存储在数据库中,但进程不能共享内存中的任何公共变量。

数据库?为什么?每个人都使用一个文件,因为文件很便宜,可用,而且你只存储一个整数值。

另外。由于您要使用文件,因此您有更多有趣的选择。

  1. 每个进程都将消息写入命名管道。接收进程从命名管道接收请求。

  2. 每个进程都将消息写入文件。一个简单的锁确保一次只有一个进程可以访问该文件,从而确保序列化。接收过程从此文件中读取。

  3. 每个进程都使用HTTP向接收进程发出RESTful请求。接收过程使用精简的HTTP服务器框架来处理请求。

  4. 每个进程都使用消息队列来排队消息。接收过程使消息出列。队列是一个文件。

  5. 等。是的,还有更多。但他们开始特定于操作系统。