diff --git a/wa/framework/job.py b/wa/framework/job.py index 1de6625b..d3c15090 100644 --- a/wa/framework/job.py +++ b/wa/framework/job.py @@ -1,4 +1,5 @@ import logging +from datetime import datetime from wa.framework import pluginloader, signal from wa.framework.configuration.core import Status @@ -37,6 +38,7 @@ class Job(object): self.context = context self.workload = None self.output = None + self.run_time = None self.retries = 0 self._status = Status.NEW @@ -71,7 +73,11 @@ class Job(object): def run(self, context): self.logger.info('Running job {}'.format(self.id)) with signal.wrap('WORKLOAD_EXECUTION', self, context): - self.workload.run(context) + start_time = datetime.utcnow() + try: + self.workload.run(context) + finally: + self.run_time = datetime.utcnow() - start_time def process_output(self, context): self.logger.info('Processing output for job {}'.format(self.id))