在gunicorn进程中共享numpy数组

15

我有一个存储在Redis中的大型numpy数组。这个数组充当索引。我想从运行在gunicorn上的flask应用程序通过http提供过滤后的结果,并且我希望gunicorn产生的所有worker都可以访问该numpy数组。我不想每次都去redis并将整个数组反序列化到内存中,而是在启动时运行一些代码来完成这个操作,然后gunicorn的每个派生worker只获取该数组的副本。问题是,我找不到如何使用gunicorn的服务器钩子的示例: http://docs.gunicorn.org/en/latest/configure.html#server-hooks 以实现这一点。 也许服务器钩子不是正确的方法,有其他人做过类似的事情吗?

1个回答

7
创建一个服务器的监听器实例,让gunicorn子进程连接到该进程以获取客户端需要的任何数据。这样,进程可以根据需要修改信息,并从主进程请求它而不是去Redis重新加载整个数据集。
更多信息请参见: Multiprocessing - 16.6.2.10. Listeners and Clients

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接