Load and save run times
diff --git a/planetstack/observer/event_loop.py b/planetstack/observer/event_loop.py
index b565a15..649918b 100644
--- a/planetstack/observer/event_loop.py
+++ b/planetstack/observer/event_loop.py
@@ -136,9 +136,8 @@
dependency_graph = step_graph
self.ordered_steps = toposort(dependency_graph, steps)
- self.last_run_times={}
- for e in self.ordered_steps:
- self.last_run_times[e.name]=0
+ self.load_run_times()
+
def check_duration(self):
try:
@@ -160,6 +159,21 @@
logger.info('Step %s does not have requested_interval set'%step.name)
raise StepNotReady
+ def load_run_times(self):
+ try:
+ jrun_times = open('/tmp/observer_run_times').read()
+ self.last_run_times = json.loads(jrun_times)
+ except:
+ self.last_run_times={}
+ for e in self.ordered_steps:
+ self.last_run_times[e.name]=0
+
+
+
+ def save_run_times(self):
+ run_times = json.dumps(self.last_run_times)
+ open('/tmp/observer_run_times','w').write(run_times)
+
def check_class_dependency(self, step, failed_steps):
for failed_step in failed_steps:
if (failed_step in self.dependency_graph[step.name]):
@@ -215,6 +229,7 @@
self.update_run_time(sync_step)
except:
failed_steps.add(S)
+ self.save_run_times()
except:
logger.log_exc("Exception in observer run loop")
traceback.print_exc()