From a0c8b413a610e8cde49dbb321ba17b16200eb92f Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Mon, 11 Jan 2021 18:44:39 +0100 Subject: [PATCH] [mod] searx.shared: minor tweaks searx.shared.shared_abstract.SharedDict inherit from abc.ABC searx.shared.shared_uwsgi.schedule can schedule multiple functions without issue --- searx/shared/shared_abstract.py | 8 +++++++- searx/shared/shared_uwsgi.py | 5 +++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/searx/shared/shared_abstract.py b/searx/shared/shared_abstract.py index 3fede417..b1c72aab 100644 --- a/searx/shared/shared_abstract.py +++ b/searx/shared/shared_abstract.py @@ -1,15 +1,21 @@ # SPDX-License-Identifier: AGPL-3.0-or-later +from abc import ABC, abstractmethod -class SharedDict: +class SharedDict(ABC): + + @abstractmethod def get_int(self, key): pass + @abstractmethod def set_int(self, key, value): pass + @abstractmethod def get_str(self, key): pass + @abstractmethod def set_str(self, key, value): pass diff --git a/searx/shared/shared_uwsgi.py b/searx/shared/shared_uwsgi.py index 136bf687..b42b5fa7 100644 --- a/searx/shared/shared_uwsgi.py +++ b/searx/shared/shared_uwsgi.py @@ -44,14 +44,15 @@ def schedule(delay, func, *args): def sighandler(signum): now = int(time.time()) + key = 'scheduler_call_time_signal_' + str(signum) uwsgi.lock() try: - updating = uwsgi.cache_get('updating') + updating = uwsgi.cache_get(key) if updating is not None: updating = int.from_bytes(updating, 'big') if now - updating < delay: return - uwsgi.cache_update('updating', now.to_bytes(4, 'big')) + uwsgi.cache_update(key, now.to_bytes(4, 'big')) finally: uwsgi.unlock() func(*args)