我围绕一个类构建了一个简单的包装器服务,该类使用 pylucene
(6.5( 读取和查询 Lucene 索引。运行服务器时出现以下错误:
RuntimeError: attachCurrentThread() must be called first
我认为问题源于lucene.initVM()
语句,我尝试将其移动到不同的地方。如果我将其放在请求方法中,它可以工作,但这意味着我需要在每个请求中加载索引。
有没有更好的方法?
将初始化语句(在本例中为 IndexHandler
的构造函数(放入具有flask
装饰器的函数中@app.before_first_request
可以解决问题。
@app.before_first_request
def load_index():
global index_handler
index_handler = IndexHandler()