14

我有一个存储在 redis 中的大 numpy 数组。该数组充当索引。我想通过在 gunicorn 上运行的烧瓶应用程序通过 http 提供过滤结果,并且我希望 gunicorn 产生的所有工作人员都可以访问这个 numpy 数组。我不想每次都去 redis 并反序列化内存中的整个数组,而是在启动时我想运行一些执行此操作的代码,并且 gunicorn 的每个分叉工作者都只会获得该数组的副本。问题是,我找不到任何关于如何使用 gunicorn 的服务器挂钩的示例: http ://docs.gunicorn.org/en/latest/configure.html#server-hooks 来实现这一点。可能是服务器挂钩不是正确的做法,有没有其他人做过类似的事情?

4

1 回答 1

7

创建一个 Listener服务器实例,让您的 gunicorn 孩子连接到该进程以获取他们作为客户端所需的任何数据。这样,进程可以根据需要修改信息并从主进程请求它,而不是去 Redis 重新加载整个数据集。

更多信息在这里:多处理 - 16.6.2.10。听众和客户

于 2013-08-13T19:37:30.970 回答