예제 #1
0
    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
예제 #2
0
 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()
예제 #3
0
 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()
예제 #4
0
 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()