如何在Django中创建一个大变量全局?

时间:2018-01-12 01:22:29

标签: python django

我正在开发一个简单的Web应用程序,该应用程序使用适度大的NLP模型,对所有用户都是一样的,理想情况下我希望从每天生成的新模型文件重新加载模型。

有没有办法让存储此模型的变量是全局的?每次用户使用它时从文件中加载它会非常慢,而且似乎太大(~1GB)被放入会话中。

谢谢!

1 个答案:

答案 0 :(得分:0)

它可能是模块中的顶级变量,然后其他代码只能[0.0, 0.0, 1.0, 0.9, 0.8, 0.7, 1.0, 0.9, 0.8, 1.0, 0.9]

如果需要每天刷新,请将其包装在访问者函数中:

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 。只要其他模块导入数据,数据将保持加载在模块中;通常这将是您的Web服务器工作进程的生命周期。