summaryrefslogtreecommitdiff
path: root/state_tracker.py
diff options
context:
space:
mode:
Diffstat (limited to 'state_tracker.py')
-rw-r--r--state_tracker.py37
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):