/// <summary> /// 獲取需要執行的排程列表并逐個執行,添加日誌和更新排程; /// </summary> /// <returns></returns> public HttpResponseBase GetExeScheduleServiceList() { //獲取需要執行的排程 List<ScheduleMasterQuery> store = new List<ScheduleMasterQuery>(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); try { ScheduleMasterQuery query = new ScheduleMasterQuery(); query.schedule_state = 1; store = _secheduleServiceMgr.GetExeScheduleMasterList(query); foreach (ScheduleMasterQuery item in store) { try { //執行排程 bool result = ExeScheduleService(item.schedule_api,item.schedule_code); //更新SchedulePeriod表的current_nums;ScheduleMaster表的previous_execute_time、next_execute_time、state; //更新current_nums欄位; SchedulePeriodQuery query_period = new SchedulePeriodQuery(); query_period.rowid = item.schedule_period_id; query_period = _secheduleServiceMgr.GetSchedulePeriod(query_period); if (query_period != null) { query_period.current_nums += 1; _secheduleServiceMgr.UpdateSchedulePeriod(query_period); } //更新ScheduleMaster表的previous_execute_time、next_execute_time、state; item.previous_execute_time = (int)CommonFunction.GetPHPTime(); //獲取next_execute_time和schedule_period_id int schedule_period_id = 0; item.next_execute_time = _secheduleServiceMgr.GetNext_Execute_Time(item.schedule_code, out schedule_period_id); item.schedule_period_id = schedule_period_id; if (item.next_execute_time == 0) { item.schedule_state = 0; } _secheduleServiceMgr.UpdateScheduleMaster(item); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } //this.Response.Clear(); //this.Response.Write(); //this.Response.End(); return this.Response; }