2021-01-05 10:22:48 +00:00
|
|
|
# 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
|
2021-12-27 08:26:22 +00:00
|
|
|
|
2021-01-05 10:22:48 +00:00
|
|
|
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
|
2021-12-27 08:26:22 +00:00
|
|
|
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'
|
|
|
|
)
|
2021-01-05 10:22:48 +00:00
|
|
|
from .shared_simple import SimpleSharedDict as SharedDict
|
|
|
|
|
|
|
|
def schedule(delay, func, *args):
|
2021-01-13 13:07:39 +00:00
|
|
|
return False
|
2021-12-27 08:26:22 +00:00
|
|
|
|
2021-01-05 10:22:48 +00:00
|
|
|
else:
|
|
|
|
# uwsgi
|
|
|
|
from .shared_uwsgi import UwsgiCacheSharedDict as SharedDict, schedule
|
2021-12-27 08:26:22 +00:00
|
|
|
|
2021-01-05 10:22:48 +00:00
|
|
|
logger.info('Use shared_uwsgi implementation')
|
|
|
|
|
|
|
|
storage = SharedDict()
|