除了POSH, Python Shared Objects,至少做了您想做的一部分(将Python对象放在svsvipc共享内存中并从多个进程中修改它们)并可以作为开发您自己的扩展模块以满足您对wsgi派生的服务器进程的需要的起点之外,Python世界中没有太多其他东西(我知道在进程之间共享对象时,不依赖于pickle/unpickle对象。在

另一件事是Pyro,它通过进程之间的任意网络连接进行共享(因此,也可以通过Unix域套接字进行共享),以我自己的经验来看,它比内置的multiprocessing为(代理)对象管理提供的更灵活。在

您还可以看看是否可以让驱动WSGI应用程序的web服务器不是fork进程,而是使用线程;这样,您只需为共享对象缓存使用标准Python全局数据,然后就可以从所有派生的WSGI处理程序线程访问这些数据。例如,线程化WSGI服务器就是CherryPy内置的wsgiserver,我将其用于一个项目,该项目正好符合您的需求。mod_wsgi也适用于您的上下文,以防您使用worker MPM配置Apache(这样Apache线程就不会派生新进程)。在

如果所有这些都不是一个选项,那么如何将您现在在web服务器中进行的实际处理提取到一个外部进程中,该进程通过某种形式的RPC机制与之通信,从而推送工作请求和拉取数据?“后端”处理服务器可以是一个简单的多线程Python进程,它通过标准库SimpleXMLRPCServer或类似的东西提供XML-RPC接口。在