@@ -16,8 +16,9 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
1616(C) 2013- by Adam Tauber, <asciimoo@gmail.com>
1717'''
1818
19−from os.path import realpath, dirname
2019import sys
20+import threading
21+from os.path import realpath, dirname
2122from flask_babel import gettext
2223from operator import itemgetter
2324from json import loads
@@ -84,6 +85,14 @@ def load_engine(engine_data):
8485 for engine_attr in dir(engine):
8586 if engine_attr.startswith('_'):
8687 continue
88+ if engine_attr == 'init':
89+ init_fn = getattr(engine, engine_attr)
90+ def engine_init():
91+ init_fn()
92+ logger.debug('%s engine initialized', engine_data['name'])
93+ logger.debug('Starting background initialization of %s engine', engine_data['name'])
94+ threading.Thread(target=engine_init).start()
95+ continue
8796 if getattr(engine, engine_attr) is None:
8897 logger.error('Missing engine config attribute: "{0}.{1}"'
8998 .format(engine.name, engine_attr))