diff options
| author | Alexandre Flament <alex@al-f.net> | 2021-01-05 11:22:48 +0100 |
|---|---|---|
| committer | Alexandre Flament <alex@al-f.net> | 2021-01-12 11:47:17 +0100 |
| commit | 6e2872f43625aba71eba019e16f7fbd74743f590 (patch) | |
| tree | 858625b7b0410503c41e8ccca14b28202d13c961 /searx/shared/__init__.py | |
| parent | 9c581466e136f7cb82d5ffe6c052fbd9e93ab39f (diff) | |
[enh] add searx.shared
shared dictionary between the workers (UWSGI or werkzeug)
scheduler: run a task once every x seconds (UWSGI or werkzeug)
Diffstat (limited to 'searx/shared/__init__.py')
| -rw-r--r-- | searx/shared/__init__.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/searx/shared/__init__.py b/searx/shared/__init__.py new file mode 100644 index 000000000..83d3a2742 --- /dev/null +++ b/searx/shared/__init__.py @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +import logging + +logger = logging.getLogger('searx.shared') + +try: + import uwsgi +except: + # no uwsgi + from .shared_simple import SimpleSharedDict as SharedDict, schedule + logger.info('Use shared_simple implementation') +else: + try: + uwsgi.cache_update('dummy', b'dummy') + if uwsgi.cache_get('dummy') != b'dummy': + raise Exception() + except: + # uwsgi.ini configuration problem: disable all scheduling + logger.error('uwsgi.ini configuration error, add this line to your uwsgi.ini\n' + 'cache2 = name=searxcache,items=2000,blocks=2000,blocksize=4096,bitmap=1') + from .shared_simple import SimpleSharedDict as SharedDict + + def schedule(delay, func, *args): + pass + else: + # uwsgi + from .shared_uwsgi import UwsgiCacheSharedDict as SharedDict, schedule + logger.info('Use shared_uwsgi implementation') + +storage = SharedDict() |