summaryrefslogtreecommitdiff
path: root/searx/search/__init__.py
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-05-05 13:08:54 +0200
committerAlexandre Flament <alex@al-f.net>2021-05-05 13:12:42 +0200
commit8c1a65d32fb6a0859c0052d668d01f08325f11ad (patch)
tree8837e952d67fb8a4755ce2c732ada76474da75c2 /searx/search/__init__.py
parentd36adfa59f242a8775ad74245c696d62b7727a36 (diff)
[mod] multithreading only in searx.search.* packages
it prepares the new architecture change, everything about multithreading in moved in the searx.search.* packages previously the call to the "init" function of the engines was done in searx.engines: * the network was not set (request not sent using the defined proxy) * it requires to monkey patch the code to avoid HTTP requests during the tests
Diffstat (limited to 'searx/search/__init__.py')
-rw-r--r--searx/search/__init__.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/searx/search/__init__.py b/searx/search/__init__.py
index 9b26f38de..acc97d1e9 100644
--- a/searx/search/__init__.py
+++ b/searx/search/__init__.py
@@ -29,9 +29,11 @@ from searx.results import ResultContainer
from searx import logger
from searx.plugins import plugins
from searx.search.models import EngineRef, SearchQuery
-from searx.search.processors import processors, initialize as initialize_processors
-from searx.search.checker import initialize as initialize_checker
+from searx.engines import load_engines
+from searx.network import initialize as initialize_network
from searx.metrics import initialize as initialize_metrics, counter_inc, histogram_observe_time
+from searx.search.processors import PROCESSORS, initialize as initialize_processors
+from searx.search.checker import initialize as initialize_checker
logger = logger.getChild('search')
@@ -50,8 +52,10 @@ else:
def initialize(settings_engines=None, enable_checker=False):
settings_engines = settings_engines or settings['engines']
- initialize_processors(settings_engines)
+ load_engines(settings_engines)
+ initialize_network(settings_engines, settings['outgoing'])
initialize_metrics([engine['name'] for engine in settings_engines])
+ initialize_processors(settings_engines)
if enable_checker:
initialize_checker()
@@ -106,7 +110,7 @@ class Search:
# start search-reqest for all selected engines
for engineref in self.search_query.engineref_list:
- processor = processors[engineref.name]
+ processor = PROCESSORS[engineref.name]
# stop the request now if the engine is suspend
if processor.extend_container_if_suspended(self.result_container):
@@ -152,7 +156,7 @@ class Search:
for engine_name, query, request_params in requests:
th = threading.Thread(
- target=processors[engine_name].search,
+ target=PROCESSORS[engine_name].search,
args=(query, request_params, self.result_container, self.start_time, self.actual_timeout),
name=search_id,
)