using System; using System.Collections.Generic; using System.Linq; using System.Text; using Quartz; using SiaSun.LMS.Model; namespace SiaSun.LMS.WinService { [DisallowConcurrentExecution] public class TaskControlJob : Job_Base, IJob { //服务端必须启动ActiveMQ服务,才能运行Job public void Execute(IJobExecutionContext context) { bool bResult = true; string sResult = string.Empty; try { foreach (SiaSun.LMS.Model.IO_CONTROL mIO_CONTROL in _P_IO_CONTROL.GetListChangeTask()) { //清除垃圾任务 if (mIO_CONTROL.MANAGE_ID.Equals(0)) { switch (mIO_CONTROL.CONTROL_STATUS) { case 999://完成 case 990://异常完成 case 900://删除 _P_IO_CONTROL.DeleteControlID(mIO_CONTROL.CONTROL_ID); break; default: break; } continue; } Msg_Control_Task_Change msg = new Msg_Control_Task_Change(); msg.MANAGE_ID = mIO_CONTROL.MANAGE_ID; msg.PRE_CONTROL_STATUS = mIO_CONTROL.PRE_CONTROL_STATUS; msg.CONTROL_STATUS = mIO_CONTROL.CONTROL_STATUS.ToString(); string sMsg = SiaSun.LMS.Common.Xml.Serializer(msg); bResult = _ActiveMsg.SendMsg( "controlTaskChange" , sMsg , out sResult); if (bResult) { _P_IO_CONTROL.UpdateStatus(mIO_CONTROL.CONTROL_ID); } } } catch (Exception ex) { Program.sysLog.Fatal("任务完成处理异常 ", ex); JobExecutionException e2 = new JobExecutionException(ex); e2.RefireImmediately = true; throw e2; } } } }