如何跨所有其他请求使用在第一个请求中创建的sklearn pickle对象

2024-05-15 22:34:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我的项目中有以下用例-Python。 我们通过API为每个用户请求准备了一个预测系统(我们使用的是IIS,需要查看flask功能)

pickle文件的大小非常大,比如700MB,我不想为每个请求都加载它(因为每个请求都会消耗更多的RAM)

我们可以将pickle文件加载到flask缓存中并将其用于所有请求吗? (或) 我们能在所有请求之间共享数据吗,这样我们就不需要一次又一次地加载它了

请帮助实现在所有请求中共享pickle数据的示例


Tags: 文件数据项目用户功能apiflask示例
1条回答
网友
1楼 · 发布于 2024-05-15 22:34:40

您可以尝试使用Flask-Cache这样的函数,并执行如下操作:

@cache.cached(timeout=None)
def get_pickle_object():
    return your_pickle_object

这样,pickle对象将只在第一次调用此函数时导入,然后从缓存中转储

您也可以在应用程序初始化期间调用它一次,以便它已经为第一个请求加载

然后每次需要对象时,使用get_pickle_object()而不是对象本身

相关问题 更多 >