这是在 web2py 中制作我们自己的搜索引擎的背景下。
我只想加载一次腌制索引,然后对进入我的 web2py 应用程序的每个请求继续重用它。有没有办法以不影响每个请求性能的方式做到这一点?
将其加载到模型中不起作用,因为模型是在每个请求上执行的。同样,在模块中执行此操作也会在每个请求时执行模块中的代码。
所以我尝试将它加载到gluon模块exec_environment定义中的shell.py中,并将以下代码放入其中。
from gluon import current
fp = open(file_name, "r")
tree = pickle.load(fp)
fp.close()
current.tree = tree
并使用树,在我写的模块中
from gluon import current
tree = current.tree
但是性能并没有提高,而且速度很慢,和每次加载泡菜一样。通常,查询的搜索时间非常短,但在这里仍然花费了太多时间。
我是否遗漏了什么,我所做的事情是不正确的,还是有正确和更好的方法?