on master help sign in
[mod] searx.search: search_multiple_requests is a method of Search class
commitc0cc01e936593ff3df828fa3bb834507c45cd7ac authorAlexandre Flament <alex@al-f.net> dateTue 15 Dec 2020, 14:50 (6 years ago) parent3b87efb
1 file changed+23−24
searx/search/__init__.py+23−24
searx/search/__init__.py+23−24
@@ -321,29 +321,6 @@ def search_one_request_safe(engine_name, query, request_params, result_container
321321 return search_one_http_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit)
322322
323323
324−def search_multiple_requests(requests, result_container, start_time, timeout_limit):
325− search_id = uuid4().__str__()
326−
327− for engine_name, query, request_params in requests:
328− th = threading.Thread(
329− target=search_one_request_safe,
330− args=(engine_name, query, request_params, result_container, start_time, timeout_limit),
331− name=search_id,
332− )
333− th._timeout = False
334− th._engine_name = engine_name
335− th.start()
336−
337− for th in threading.enumerate():
338− if th.name == search_id:
339− remaining_time = max(0.0, timeout_limit - (time() - start_time))
340− th.join(remaining_time)
341− if th.is_alive():
342− th._timeout = True
343− result_container.add_unresponsive_engine(th._engine_name, 'timeout')
344− logger.warning('engine timeout: {0}'.format(th._engine_name))
345−
346−
347324# get default reqest parameter
348325def default_request_params():
349326 return {
@@ -492,6 +469,28 @@ class Search:
492469
493470 return requests, actual_timeout
494471
472+ def search_multiple_requests(self, requests):
473+ search_id = uuid4().__str__()
474+
475+ for engine_name, query, request_params in requests:
476+ th = threading.Thread(
477+ target=search_one_request_safe,
478+ args=(engine_name, query, request_params, self.result_container, self.start_time, self.actual_timeout),
479+ name=search_id,
480+ )
481+ th._timeout = False
482+ th._engine_name = engine_name
483+ th.start()
484+
485+ for th in threading.enumerate():
486+ if th.name == search_id:
487+ remaining_time = max(0.0, self.actual_timeout - (time() - self.start_time))
488+ th.join(remaining_time)
489+ if th.is_alive():
490+ th._timeout = True
491+ self.result_container.add_unresponsive_engine(th._engine_name, 'timeout')
492+ logger.warning('engine timeout: {0}'.format(th._engine_name))
493+
495494 def search_standard(self):
496495 """
497496 Update self.result_container, self.actual_timeout
@@ -500,7 +499,7 @@ class Search:
500499
501500 # send all search-request
502501 if requests:
503− search_multiple_requests(requests, self.result_container, self.start_time, self.actual_timeout)
502+ self.search_multiple_requests(requests)
504503 start_new_thread(gc.collect, tuple())
505504
506505 # return results, suggestions, answers and infoboxes