def set_job_by_track_ids(cls, track_ids, values): jobs = db_session.query(Job).filter(Job.track_id.in_(track_ids)).all() track_ids_copy = track_ids.copy() try: for job in jobs: track_ids.remove(job.track_id) value = values.get(job.track_id, {}) new_status = value.get('status') new_result = value.get('result', '') new_traceback = value.get('traceback', '') if job.status != new_status: # 第一次变成running的时间即启动时间 if new_status == 'running': job.start_time = datetime.datetime.now() if new_status in ['succeed', 'failed']: job.end_time = datetime.datetime.now() job.result = new_result job.traceback = new_traceback job.status = new_status db_session.commit() except: logger.exception('set_job_by_track_ids catch exception.') db_session.rollback() return track_ids_copy return track_ids
def session_commit(*args, **kwargs): try: func(*args, **kwargs) except Exception as e: jsl_log.info("DB operation error,here are details :{}".format(e)) db_session.rollback()
def session_commit(*args, **kwargs): try: return func(*args, **kwargs) except Exception as e: storage.error('DB operation error,here are details:{}'.format(e)) db_session.rollback()