mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-03 19:17:07 -05:00 
			
		
		
		
	Merge pull request #86 from searxng/remove-call-to-gc
[mod] remove gc.collect() after each user request
This commit is contained in:
		
						commit
						2f76b570ab
					
				@ -1,26 +1,11 @@
 | 
			
		||||
'''
 | 
			
		||||
searx is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU Affero General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
searx is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU Affero General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
along with searx. If not, see < http://www.gnu.org/licenses/ >.
 | 
			
		||||
 | 
			
		||||
(C) 2013- by Adam Tauber, <asciimoo@gmail.com>
 | 
			
		||||
'''
 | 
			
		||||
# SPDX-License-Identifier: AGPL-3.0-or-later
 | 
			
		||||
# lint: pylint
 | 
			
		||||
# pylint: disable=missing-module-docstring, missing-function-docstring
 | 
			
		||||
 | 
			
		||||
import typing
 | 
			
		||||
import gc
 | 
			
		||||
import threading
 | 
			
		||||
from timeit import default_timer
 | 
			
		||||
from uuid import uuid4
 | 
			
		||||
from _thread import start_new_thread
 | 
			
		||||
 | 
			
		||||
from searx import settings
 | 
			
		||||
from searx.answerers import ask
 | 
			
		||||
@ -152,10 +137,11 @@ class Search:
 | 
			
		||||
        return requests, actual_timeout
 | 
			
		||||
 | 
			
		||||
    def search_multiple_requests(self, requests):
 | 
			
		||||
        # pylint: disable=protected-access
 | 
			
		||||
        search_id = uuid4().__str__()
 | 
			
		||||
 | 
			
		||||
        for engine_name, query, request_params in requests:
 | 
			
		||||
            th = threading.Thread(
 | 
			
		||||
            th = threading.Thread(  # pylint: disable=invalid-name
 | 
			
		||||
                target=PROCESSORS[engine_name].search,
 | 
			
		||||
                args=(query, request_params, self.result_container, self.start_time, self.actual_timeout),
 | 
			
		||||
                name=search_id,
 | 
			
		||||
@ -164,7 +150,7 @@ class Search:
 | 
			
		||||
            th._engine_name = engine_name
 | 
			
		||||
            th.start()
 | 
			
		||||
 | 
			
		||||
        for th in threading.enumerate():
 | 
			
		||||
        for th in threading.enumerate():  # pylint: disable=invalid-name
 | 
			
		||||
            if th.name == search_id:
 | 
			
		||||
                remaining_time = max(0.0, self.actual_timeout - (default_timer() - self.start_time))
 | 
			
		||||
                th.join(remaining_time)
 | 
			
		||||
@ -182,7 +168,6 @@ class Search:
 | 
			
		||||
        # send all search-request
 | 
			
		||||
        if requests:
 | 
			
		||||
            self.search_multiple_requests(requests)
 | 
			
		||||
            start_new_thread(gc.collect, tuple())
 | 
			
		||||
 | 
			
		||||
        # return results, suggestions, answers and infoboxes
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user