Flask 在烧瓶中使用pylucene时,如何避免attachCurrentThread异常?
我围绕一个类构建了一个简单的包装器服务,该类使用Flask 在烧瓶中使用pylucene时,如何避免attachCurrentThread异常?,flask,pylucene,Flask,Pylucene,我围绕一个类构建了一个简单的包装器服务,该类使用pylucene(6.5)读取和查询Lucene索引。运行服务器时出现以下错误: 运行时错误:必须首先调用attachCurrentThread() 我假设问题源于lucene.initVM()语句,并尝试将其移动到不同的位置。如果我把它放在request方法中,它会工作,但这意味着我需要在每个请求中加载索引 有更好的方法吗?在第一次请求之前,将初始化语句(在本例中是IndexHandler的构造函数)放入一个带有flaskdecorator@ap
pylucene
(6.5)读取和查询Lucene索引。运行服务器时出现以下错误:
运行时错误:必须首先调用attachCurrentThread()
我假设问题源于lucene.initVM()
语句,并尝试将其移动到不同的位置。如果我把它放在request方法中,它会工作,但这意味着我需要在每个请求中加载索引
有更好的方法吗?在第一次请求之前,将初始化语句(在本例中是IndexHandler
的构造函数)放入一个带有flask
decorator@app的函数中解决问题
@app.before_first_request
def load_index():
global index_handler
index_handler = IndexHandler()
在处理每个与lucene相关的请求之前调用lucene.getVMEnv().attachCurrentThread(),修复了它,