X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=state_tracker.py;h=16d2f595cf12ee34e3c28cdb9f1c522f8ac0b978;hb=e516059c716537259c601c022cc3bad44025385e;hp=225584bb1a907314de374c9da159d7afb5c96cb1;hpb=497fb9e21f45ec08e1486abaee6dfa7b20b8a691;p=python_utils.git diff --git a/state_tracker.py b/state_tracker.py index 225584b..16d2f59 100644 --- a/state_tracker.py +++ b/state_tracker.py @@ -8,8 +8,8 @@ from typing import Dict, Optional import pytz -from thread_utils import background_thread import math_utils +from thread_utils import background_thread logger = logging.getLogger(__name__) @@ -67,33 +67,34 @@ class StateTracker(ABC): """ self.now = datetime.datetime.now(tz=pytz.timezone("US/Pacific")) for update_id in sorted(self.last_reminder_ts.keys()): - refresh_secs = self.update_ids_to_update_secs[update_id] if force_all_updates_to_run: logger.debug('Forcing all updates to run') self.update( update_id, self.now, self.last_reminder_ts[update_id] ) self.last_reminder_ts[update_id] = self.now + return + + refresh_secs = self.update_ids_to_update_secs[update_id] + last_run = self.last_reminder_ts[update_id] + if last_run is None: # Never run before + logger.debug( + f'id {update_id} has never been run; running it now' + ) + self.update( + update_id, self.now, self.last_reminder_ts[update_id] + ) + self.last_reminder_ts[update_id] = self.now else: - last_run = self.last_reminder_ts[update_id] - if last_run is None: # Never run before - logger.debug( - f'id {update_id} has never been run; running it now' - ) + delta = self.now - last_run + if delta.total_seconds() >= refresh_secs: # Is overdue? + logger.debug(f'id {update_id} is overdue; running it now') self.update( - update_id, self.now, self.last_reminder_ts[update_id] + update_id, + self.now, + self.last_reminder_ts[update_id], ) self.last_reminder_ts[update_id] = self.now - else: - delta = self.now - last_run - if delta.total_seconds() >= refresh_secs: # Is overdue - logger.debug('id {update_id} is overdue; running it now') - self.update( - update_id, - self.now, - self.last_reminder_ts[update_id], - ) - self.last_reminder_ts[update_id] = self.now class AutomaticStateTracker(StateTracker):