def broadcast_event(self):
for event_listener in self.event_listeners:
try:
+ self.logger.debug("Notifying event listener %s",
+ event_listener)
event_listener(self)
except Exception, e:
self.logger.exception("While notifying listener %s", e)
def execute_workloads(self):
self._terminated = False
self.logger.info("Starting job %s" % (self.job_db.job_id))
+ self.event_listeners.clear()
data_handler = DataHandler()
self.register(data_handler.data_event)
self.end_time = time.time()
self._terminated = True
self.broadcast_event()
+ self.unregister(data_handler.data_event)
def execute_on_node(self, workload):
self.job_db.start_workload(workload)
workload.execute()
self.job_db.end_workload(workload)
+ invoker.unregister(self.event)
self.logger.info("Ended " + workload.fullname)