Browse Source

[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
Alexandre Flament 4 years ago
parent
commit
a0c8b413a6
2 changed files with 10 additions and 3 deletions
  1. 7 1
      searx/shared/shared_abstract.py
  2. 3 2
      searx/shared/shared_uwsgi.py

+ 7 - 1
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

+ 3 - 2
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)