我正在开发一个简单的web应用程序,它使用一个中等大的NLP模型,这对所有用户都是一样的,理想情况下,我希望从每天生成的新模型文件中重新加载模型。
有没有办法使存储此模型的变量成为全局变量?每次用户使用它时,从文件中加载它将非常慢,并且它似乎太大(~1 1GB),无法放入会话中。
谢谢!
发布于 2018-01-12 09:53:59
它可以是模块中的顶级变量,然后其他代码可以直接import它。
如果需要每天刷新,则将其封装在一个存取器函数中:
# data_manager.py
from datetime import datetime, timedelta
data = None
last_load_time = None
def get_data():
global data
global last_load_time
if last_load_time is None or last_load_time + timedelta(hours=24) < datetime.now():
data = some_expensive_function()
last_load_time = datetime.now()
return data然后其他模块就可以直接调用get_data()了。只要其他模块导入了数据,数据就会一直加载到模块中;通常情况下,这是The服务器工作进程的生命周期。
https://stackoverflow.com/questions/48218254
复制相似问题