2017-05-17 3 views
0

J'ai construit un service wrapper simple autour d'une classe qui lit et interroge un index Lucene en utilisant pylucene (6.5). Je reçois l'erreur suivante lors de l'exécution du serveur:Comment éviter l'exception attachCurrentThread lors de l'utilisation de pylucene dans flask?

RuntimeError: attachCurrentThread() must be called first

Je suppose que le problème découle de la déclaration lucene.initVM() et je l'ai essayé déplacer dans des endroits différents. Cela fonctionne si je le mets dans la méthode de requête, mais cela signifie que j'ai besoin de charger l'index avec chaque requête.

Y a-t-il une meilleure façon de le faire?

Répondre

0

Mettre l'instruction d'initialisation (dans ce cas le constructeur de IndexHandler) dans une fonction avec un décorateur flask@app.before_first_request résout le problème.

@app.before_first_request 
def load_index(): 
    global index_handler 
    index_handler = IndexHandler()