on master help sign in
[fix] checker: don't run the checker when uwsgi is not properly configured

Before this commit, even with the scheduler disabled, the checker was running at least once for each uwsgi worker.

commit912c7e975c3943db798d748fa48d460467b66d30 authorAlexandre Flament <alex@al-f.net> dateWed 13 Jan 2021, 14:07 (6 years ago) parent7f0c508
4 files changed+9−6
searx/search/checker/background.py+6−5 searx/shared/__init__.py+1−1 searx/shared/shared_simple.py+1 searx/shared/shared_uwsgi.py+1
searx/search/checker/background.py+6−5
@@ -40,8 +40,9 @@ def get_result():
4040 return json.loads(serialized_result)
4141
4242
43−def _set_result(result):
44− result['timestamp'] = int(time.time() / 3600) * 3600
43+def _set_result(result, include_timestamp=True):
44+ if include_timestamp:
45+ result['timestamp'] = int(time.time() / 3600) * 3600
4546 storage.set_str(CHECKER_RESULT, json.dumps(result))
4647
4748
@@ -82,8 +83,8 @@ def _run_with_delay():
8283
8384def _start_scheduling():
8485 every = _get_every()
85− schedule(every[0], _run_with_delay)
86− run()
86+ if schedule(every[0], _run_with_delay):
87+ run()
8788
8889
8990def _signal_handler(signum, frame):
@@ -111,7 +112,7 @@ def initialize():
111112 return
112113
113114 #
114− _set_result({'status': 'unknown'})
115+ _set_result({'status': 'unknown'}, include_timestamp=False)
115116
116117 start_after = scheduling.get('start_after', (300, 1800))
117118 start_after = _get_interval(start_after, 'checker.scheduling.start_after is not a int or list')
searx/shared/__init__.py+1−1
@@ -22,7 +22,7 @@ else:
2222 from .shared_simple import SimpleSharedDict as SharedDict
2323
2424 def schedule(delay, func, *args):
25− pass
25+ return False
2626 else:
2727 # uwsgi
2828 from .shared_uwsgi import UwsgiCacheSharedDict as SharedDict, schedule
searx/shared/shared_simple.py+1
@@ -36,3 +36,4 @@ def schedule(delay, func, *args):
3636 func(*args)
3737
3838 call_later()
39+ return True
searx/shared/shared_uwsgi.py+1
@@ -61,3 +61,4 @@ def schedule(delay, func, *args):
6161 _last_signal += 1
6262 uwsgi.register_signal(signal_num, 'worker', sighandler)
6363 uwsgi.add_timer(signal_num, delay)
64+ return True