[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.
This commit is contained in:
Alexandre Flament 2021-01-13 14:07:39 +01:00
parent 7f0c508598
commit 912c7e975c
4 changed files with 9 additions and 6 deletions

View File

@ -40,8 +40,9 @@ def get_result():
return json.loads(serialized_result)
def _set_result(result):
result['timestamp'] = int(time.time() / 3600) * 3600
def _set_result(result, include_timestamp=True):
if include_timestamp:
result['timestamp'] = int(time.time() / 3600) * 3600
storage.set_str(CHECKER_RESULT, json.dumps(result))
@ -82,8 +83,8 @@ def _run_with_delay():
def _start_scheduling():
every = _get_every()
schedule(every[0], _run_with_delay)
run()
if schedule(every[0], _run_with_delay):
run()
def _signal_handler(signum, frame):
@ -111,7 +112,7 @@ def initialize():
return
#
_set_result({'status': 'unknown'})
_set_result({'status': 'unknown'}, include_timestamp=False)
start_after = scheduling.get('start_after', (300, 1800))
start_after = _get_interval(start_after, 'checker.scheduling.start_after is not a int or list')

View File

@ -22,7 +22,7 @@ else:
from .shared_simple import SimpleSharedDict as SharedDict
def schedule(delay, func, *args):
pass
return False
else:
# uwsgi
from .shared_uwsgi import UwsgiCacheSharedDict as SharedDict, schedule

View File

@ -36,3 +36,4 @@ def schedule(delay, func, *args):
func(*args)
call_later()
return True

View File

@ -61,3 +61,4 @@ def schedule(delay, func, *args):
_last_signal += 1
uwsgi.register_signal(signal_num, 'worker', sighandler)
uwsgi.add_timer(signal_num, delay)
return True