def run_task(self, **kwargs): Session.merge(self.task) self.task.start_time = datetime.utcnow() self.task.ident = threading.get_ident() self.task.status = TaskStatus.running.value Session.merge(self.task) Session.commit() try: self.run_function(**kwargs) self.task.log = self.log.messages self.task.end_time = datetime.utcnow() self.task.status = TaskStatus.finished.value self.task.result = TaskResult.success.value self.task = Session.merge(self.task) Session.commit() except Exception as e: self.task.log = self.log.messages self.task.tb = traceback.format_exc() self.task.end_time = datetime.utcnow() self.task.status = TaskStatus.finished.value self.task.result = TaskResult.fail.value self.task = Session.merge(self.task) Session.commit() defect = jira.defect_for_exception( "Background Task Error: {}".format(self.task.name), e, tb=traceback.format_exc(), username=self.task.username) self.task.defect_ticket = defect.key self.task = Session.merge(self.task) Session.commit() finally: Session.remove()
def run_task(self, **kwargs): Session.merge(self.task) self.task.start_time = datetime.utcnow() self.task.ident = threading.get_ident() self.task.status = TaskStatus.running.value Session.merge(self.task) Session.commit() try: self.run_function(**kwargs) self.task.log = self.log.messages self.task.end_time = datetime.utcnow() self.task.status = TaskStatus.finished.value self.task.result = TaskResult.success.value self.task = Session.merge(self.task) Session.commit() except Exception as e: self.task.log = self.log.messages self.task.tb = traceback.format_exc() self.task.end_time = datetime.utcnow() self.task.status = TaskStatus.finished.value self.task.result = TaskResult.fail.value self.task = Session.merge(self.task) Session.commit() defect = jira.defect_for_exception( "Background Task Error: {}".format( self.task.name), e, tb=traceback.format_exc(), username=self.task.username) self.task.defect_ticket = defect.key self.task = Session.merge(self.task) Session.commit() finally: Session.remove()
def shutdown_session(exception=None): Session.remove()