[fix] checker: fix engine statistics

Without this commit, the URL /stats/errors shows percentage above 100% after the checker has run.
This commit is contained in:
Alexandre Flament 2021-01-17 16:14:16 +01:00
parent ca76f3119a
commit d473407ec9
3 changed files with 7 additions and 4 deletions

View File

@ -53,9 +53,9 @@ def add_error_context(engine_name: str, error_context: ErrorContext) -> None:
def get_trace(traces):
for trace in reversed(traces):
split_filename = trace.filename.split('/')
if len(split_filename) > 3 and '/'.join(split_filename[-3:-1]) == 'searx/engines':
if '/'.join(split_filename[-3:-1]) == 'searx/engines':
return trace
if len(split_filename) > 3 and '/'.join(split_filename[-4:-1]) == 'searx/search/processors':
if '/'.join(split_filename[-4:-1]) == 'searx/search/processors':
return trace
return traces[-1]

View File

@ -4,6 +4,7 @@ import typing
import types
import functools
import itertools
import threading
from time import time
from urllib.parse import urlparse
@ -377,6 +378,8 @@ class Checker:
engineref_category = search_query.engineref_list[0].category
params = self.processor.get_params(search_query, engineref_category)
if params is not None:
with threading.RLock():
self.processor.engine.stats['sent_search_count'] += 1
self.processor.search(search_query.query, params, result_container, time(), 5)
return result_container

View File

@ -1,13 +1,13 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
from abc import abstractmethod
from abc import abstractmethod, ABC
from searx import logger
logger = logger.getChild('searx.search.processor')
class EngineProcessor:
class EngineProcessor(ABC):
def __init__(self, engine, engine_name):
self.engine = engine