on master help sign in
[fix] checker: don't run the checker when uwsgi is not properly configured
912c7e9Alexandre Flament
searx/search/checker/background.py+6−5
@@ -40,8 +40,9 @@ def get_result():
40 return json.loads(serialized_result)
40 return json.loads(serialized_result)
41
41
42
42
43−def _set_result(result):
43+def _set_result(result, include_timestamp=True):
44+ if include_timestamp:
44− result['timestamp'] = int(time.time() / 3600) * 3600
45+ result['timestamp'] = int(time.time() / 3600) * 3600
45 storage.set_str(CHECKER_RESULT, json.dumps(result))
46 storage.set_str(CHECKER_RESULT, json.dumps(result))
46
47
47
48
@@ -82,8 +83,8 @@ def _run_with_delay():
82
83
83def _start_scheduling():
84def _start_scheduling():
84 every = _get_every()
85 every = _get_every()
85− schedule(every[0], _run_with_delay)
86+ if schedule(every[0], _run_with_delay):
86− run()
87+ run()
87
88
88
89
89def _signal_handler(signum, frame):
90def _signal_handler(signum, frame):
@@ -111,7 +112,7 @@ def initialize():
111 return
112 return
112
113
113 #
114 #
114− _set_result({'status': 'unknown'})
115+ _set_result({'status': 'unknown'}, include_timestamp=False)
115
116
116 start_after = scheduling.get('start_after', (300, 1800))
117 start_after = scheduling.get('start_after', (300, 1800))
117 start_after = _get_interval(start_after, 'checker.scheduling.start_after is not a int or list')
118 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:
22 from .shared_simple import SimpleSharedDict as SharedDict
22 from .shared_simple import SimpleSharedDict as SharedDict
23
23
24 def schedule(delay, func, *args):
24 def schedule(delay, func, *args):
25− pass
25+ return False
26 else:
26 else:
27 # uwsgi
27 # uwsgi
28 from .shared_uwsgi import UwsgiCacheSharedDict as SharedDict, schedule
28 from .shared_uwsgi import UwsgiCacheSharedDict as SharedDict, schedule
searx/shared/shared_simple.py+1
@@ -36,3 +36,4 @@ def schedule(delay, func, *args):
36 func(*args)
36 func(*args)
37
37
38 call_later()
38 call_later()
39+ return True
searx/shared/shared_uwsgi.py+1
@@ -61,3 +61,4 @@ def schedule(delay, func, *args):
61 _last_signal += 1
61 _last_signal += 1
62 uwsgi.register_signal(signal_num, 'worker', sighandler)
62 uwsgi.register_signal(signal_num, 'worker', sighandler)
63 uwsgi.add_timer(signal_num, delay)
63 uwsgi.add_timer(signal_num, delay)
64+ return True