summaryrefslogtreecommitdiff
path: root/searx/search/processors/abstract.py
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-05-05 18:33:16 +0200
committerGitHub <noreply@github.com>2021-05-05 18:33:16 +0200
commit5b13786abb194dba3e562854de8fbb5a3fe8c2df (patch)
tree50002f4c1c31d7e93897b70bc8a8aac946df0b6a /searx/search/processors/abstract.py
parentd36adfa59f242a8775ad74245c696d62b7727a36 (diff)
parentfa0d05c3131041eb44542e0b505eaed1833bf86e (diff)
Merge pull request #58 from searxng/mod-multithreading
[mod] multithreading only in searx.search.* packages
Diffstat (limited to 'searx/search/processors/abstract.py')
-rw-r--r--searx/search/processors/abstract.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/searx/search/processors/abstract.py b/searx/search/processors/abstract.py
index 38811d87c..81724f052 100644
--- a/searx/search/processors/abstract.py
+++ b/searx/search/processors/abstract.py
@@ -13,7 +13,8 @@ from searx import logger
from searx.engines import settings
from searx.network import get_time_for_thread, get_network
from searx.metrics import histogram_observe, counter_inc, count_exception, count_error
-from searx.exceptions import SearxEngineAccessDeniedException
+from searx.exceptions import SearxEngineAccessDeniedException, SearxEngineResponseException
+from searx.utils import get_engine_from_settings
logger = logger.getChild('searx.search.processor')
SUSPENDED_STATUS = {}
@@ -66,6 +67,20 @@ class EngineProcessor(ABC):
key = id(key) if key else self.engine_name
self.suspended_status = SUSPENDED_STATUS.setdefault(key, SuspendedStatus())
+ def initialize(self):
+ try:
+ self.engine.init(get_engine_from_settings(self.engine_name))
+ except SearxEngineResponseException as exc:
+ logger.warn('%s engine: Fail to initialize // %s', self.engine_name, exc)
+ except Exception: # pylint: disable=broad-except
+ logger.exception('%s engine: Fail to initialize', self.engine_name)
+ else:
+ logger.debug('%s engine: Initialized', self.engine_name)
+
+ @property
+ def has_initialize_function(self):
+ return hasattr(self.engine, 'init')
+
def handle_exception(self, result_container, exception_or_message, suspend=False):
# update result_container
if isinstance(exception_or_message, BaseException):