diff options
| author | Scott Gasch <[email protected]> | 2021-07-08 19:44:27 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2021-07-08 19:44:27 -0700 |
| commit | 3bc4daf1edc121cd633429187392227f2fa61885 (patch) | |
| tree | 0663cf35f562c7023c914454c85050d502ad9f3c /state_tracker.py | |
| parent | 5fd30ef12c100cbb936aa0fdb515b67cff4064db (diff) | |
Lots of changes.
Diffstat (limited to 'state_tracker.py')
| -rw-r--r-- | state_tracker.py | 37 |
1 files changed, 19 insertions, 18 deletions
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): |
