/// <summary> /// This is Entry Point to Training Tracker Task scheduler /// </summary> /// <exception> No exception should propagate to top, else it may cause Service and its other dependencies to failure</exception> public void ExecutePlugin() { try { SchedulerDataAccess dataAccess = new SchedulerDataAccess(); foreach (TaskSchedulerJob job in dataAccess.GetAllActiveScheduledJob()) { try { // Execute individual job ExecuteTrainingTrackerJob(job); // Update the Execution time fotr the Job dataAccess.UpdateJobExecutionStatus(job.Id); } catch (Exception ex) { Constants.WriteEventLog(ex.ToString()); } } } catch (Exception ex) { Constants.WriteEventLog(ex.ToString()); } }
/// <summary> /// 按条件查询调度历史记录 /// </summary> /// <param name="condition"></param> /// <returns></returns> public List <ESB_SCHD_HISTORY_VIEW> SearchScheduleHistory(ScheduleHistoryCondition condition) { try { return(SchedulerDataAccess.GetScheduleHistroyByCondition(condition)); } catch (Exception ex) { throw new Exception("按条件查询调度历史记录 失败!" + ex.Message); } }
/// <summary> /// 新增调度历史记录 /// </summary> /// <param name="history"></param> public void AddScheduleHistory(ESB_SCHD_HISTORY history) { try { SchedulerDataAccess.AddScheduleHistory(history); } catch (Exception ex) { throw new Exception("新增调度历史记录 失败!" + ex.Message); } }
/// <summary> /// 启用Esb WebService调度任务 /// </summary> /// <param name="schedID"></param> public void ResumeQuartzWebServiceScheduler(string schedID) { try { ESB_SCHD scheduler = SchedulerDataAccess.GetEsbSchedulerBySchedID(schedID); sched.ResumeTrigger(new TriggerKey(scheduler.TRIG_NAME, scheduler.TRIG_GROUP)); } catch (Exception ex) { throw new Exception("启用Esb WebService调度任务 失败!" + ex.Message); } }
/// <summary> /// 修改Esb WebService调度任务 /// </summary> /// <param name="scheduler"></param> /// <param name="esbWS"></param> public void UpdateEsbWebServcieScheduler(ESB_SCHD scheduler, ESB_SCHD_EsbWS esbWS) { try { ESB_SCHD sched = SchedulerDataAccess.UpdateEsbWebServcieScheduler(scheduler, esbWS); ESB_SCHD_EsbWS esbWebService = SchedulerDataAccess.GetEsbWebServiceBySchedID(sched.SCHD_ID); RemoveQuartzWebServiceScheduler(sched.TRIG_NAME, sched.JOB_NAME, sched.TRIG_GROUP); AddQuartzWebServiceScheduler(sched, esbWebService); } catch (Exception ex) { throw new Exception("修改Esb WebService调度任务 失败!" + ex.Message); } }
/// <summary> /// 新增Esb WebService调度任务 /// </summary> /// <param name="scheduler"></param> /// <param name="esbWS"></param> public void AddEsbWebServcieScheduler(ESB_SCHD scheduler, ESB_SCHD_EsbWS esbWS) { scheduler.SCHD_ID = Guid.NewGuid().ToString().ToUpper(); AddQuartzWebServiceScheduler(scheduler, esbWS); try { SchedulerDataAccess.AddEsbWebServcieScheduler(scheduler, esbWS); } catch (Exception ex) { RemoveQuartzWebServiceScheduler(scheduler.TRIG_NAME, scheduler.JOB_NAME, scheduler.TRIG_GROUP); throw new Exception("新增Esb WebService调度任务 失败!" + ex.Message); } }
/// <summary> /// 删除Esb WebService调度任务 /// </summary> /// <param name="schedID"></param> public void DeleteEsbWebServcieScheduler(string schedID) { try { ESB_SCHD scheduler = SchedulerDataAccess.GetEsbSchedulerBySchedID(schedID); ESB_SCHD_EsbWS esbWS = SchedulerDataAccess.GetEsbWebServiceBySchedID(schedID); SchedulerDataAccess.DeleteEsbWebServcieScheduler(scheduler, esbWS); RemoveQuartzWebServiceScheduler(scheduler.TRIG_NAME, scheduler.JOB_NAME, scheduler.TRIG_GROUP); } catch (Exception ex) { throw new Exception("删除Esb WebService调度任务 失败!" + ex.Message); } }
/// <summary> /// 按照调度主机查找调度实例 /// </summary> /// <param name="host"></param> /// <returns></returns> public List <ESB_SCHD_VIEW> GetSchedulerByHost(Guid host) { try { List <ESB_SCHD_VIEW> list = SchedulerDataAccess.GetAllScheduler(); if (host != Guid.Empty) { var ret = from s in list where s.SCHD_HOST == host select s; return(ret.ToList()); } else { return(list.ToList()); } } catch (Exception ex) { throw new Exception("按照调度主机查找调度实例 失败!" + ex.Message); } }
/// <summary> /// 根据schedID 获取EsbWebService /// </summary> /// <param name="schedID"></param> /// <returns></returns> public ESB_SCHD_EsbWS GetEsbWebServiceBySchedID(string schedID) { return(SchedulerDataAccess.GetEsbWebServiceBySchedID(schedID)); }