/// <summary> /// 執行清單 /// </summary> private void CallScheduelBaseII() { ScheduleBase schedule = GetNextJob();//去RabbitMQ 取下一個Message if (schedule != null) { //紀錄開始動作 ScheduleTaskModule.Start(schedule.Task.ID, string.Format("{0} Start, Run Server:{1}", schedule.Task.ScheduleType.ToString(), _ScheduleServer)); lock (_Lock) { _Schedules.Add(schedule); schedule._OnFinished += new ScheduleBase.FinishedHandler(ScheduleFinish);//實作Schedule Finish ThreadCounter++; if (Debugger.IsAttached) { schedule.GO();//測試用 } else { Thread thread = new Thread(schedule.GO); thread.Start(); } } } else { //有可能無訊息了,也有可能訊息本身有錯誤格式 ScheduleTaskModule.NoMessage(_IntervalSec); System.Threading.Thread.Sleep(_IntervalSec * 1000); } }