From 538c212a89f8259a1d582aec5804af369debb4c7 Mon Sep 17 00:00:00 2001 From: Slavek Kabrda Date: Wed, 18 Dec 2013 11:24:43 +0100 Subject: [PATCH] Pass timeout to whoosh writer, allow setting it in app.config --- README.md | 2 ++ flask_whooshee.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 013bfae..7b55528 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,8 @@ from flask.ext.whooshee import Whooshee, AbstractWhoosheer app = Flask(__name__) app.config['WHOOSHEE_DIR'] = /tmp/whoosheers +# how long should whooshee try to acquire write lock? (defaults to 2) +app.config['WHOOSHEE_WRITER_TIMEOUT'] = 3 db = SQLAlchemy(app) whooshee = Whooshee(app) diff --git a/flask_whooshee.py b/flask_whooshee.py index 15dd476..1ae4402 100644 --- a/flask_whooshee.py +++ b/flask_whooshee.py @@ -93,6 +93,7 @@ class Whooshee(object): def __init__(self, app): self.index_path_root = app.config.get('WHOOSHEE_DIR', '') or 'whooshee' self.search_string_min_len = app.config.get('WHOSHEE_MIN_STRING_LEN', 3) + self.writer_timeout = app.config.get('WHOOSHEE_WRITER_TIMEOUT', 2) models_committed.connect(self.on_commit, sender=app) if not os.path.exists(self.index_path_root): os.makedirs(self.index_path_root) @@ -179,7 +180,7 @@ class Whooshee(object): def on_commit(self, app, changes): for wh in self.__class__.whoosheers: - writer = wh.index.writer() + writer = wh.index.writer(timeout=self.writer_timeout) for change in changes: if change[0].__class__ in wh.models: method_name = '{0}_{1}'.format(change[1], change[0].__class__.__name__.lower())