Python Gunicorn在多处理进程和工作进程之间共享内存

Python Gunicorn在多处理进程和工作进程之间共享内存,python,multiprocessing,gunicorn,Python,Multiprocessing,Gunicorn,我有一个python应用程序,它使用字典作为多个进程之间的共享内存: from multiprocessing import Manager manager = Manager() shared_dict = manager.dict() RESTAPI是使用Flask实现的。使用pywsgi或简单地使用Flask.run初始化Flask服务器时,一切正常。 我决定加入gunicorn的混合物。现在,当我从任何一个worker访问此共享dict时(即使只有一个worker正在运行),我得到了错

我有一个python应用程序,它使用字典作为多个进程之间的共享内存:

from multiprocessing import Manager
manager = Manager()
shared_dict = manager.dict()
RESTAPI是使用Flask实现的。使用pywsgi或简单地使用Flask.run初始化Flask服务器时,一切正常。 我决定加入gunicorn的混合物。现在,当我从任何一个worker访问此共享dict时(即使只有一个worker正在运行),我得到了错误:

message=connection.recv_字节(256)#拒绝大消息
IOError:[Errno 35]资源暂时不可用


我一直在研究mmap、多处理侦听器和客户端,它们看起来都有很大的开销。

我不知道具体的错误,但我认为最可能的原因是,当您添加web服务器时,进程会按需初始化,因此
管理器dict
在调用中丢失。如果dict不够大,您可以支付序列化/反序列化的代价,那么将内存中的数据结构存储与库一起使用就相当简单了