using Quartz; using Quartz.Xml; using System; using System.Collections; using System.IO; using System.ServiceProcess; using System.Threading; using WX.CRM.Common; namespace WX.CRM.CRMServices { partial class CRMWinServices : ServiceBase { Thread _sms_send; public CRMWinServices() { InitializeComponent(); } protected override void OnStart(string[] args) { try { _sms_send = new Thread(new ThreadStart(GetScheduleJob)); _sms_send.Start(); WX.CRM.Common.LogHelper.Info("服务已启动!"); } catch (Exception e) { WX.CRM.Common.LogHelper.Error(string.Concat("CRMWinServices.OnStart:", e.ToString())); } } protected override void OnStop() { try { if (_sms_send.ThreadState == System.Threading.ThreadState.Running) _sms_send.Abort(); WX.CRM.Common.LogHelper.Info("服务停止!"); } catch (Exception ex) { WX.CRM.Common.LogHelper.Error("服务停止异常" + ex.Message + ex.StackTrace); } } public void GetScheduleJob() { try { JobSchedulingDataProcessor processor; processor = new JobSchedulingDataProcessor(true, true); ISchedulerFactory sf = new Quartz.Impl.StdSchedulerFactory(); IScheduler sched = sf.GetScheduler(); LogHelper.Error("------GetScheduleJob开始执行---1--"); Stream s = new StreamReader(string.Concat(AppDomain.CurrentDomain.BaseDirectory, "XML/JobConfig.xml"), System.Text.Encoding.GetEncoding("UTF-8")).BaseStream; LogHelper.Error("------GetScheduleJob开始执行---2--"); processor.ProcessStream(s, null); LogHelper.Error("------GetScheduleJob开始执行---3--s==" + s); processor.ScheduleJobs(new Hashtable(), sched, false); sched.Start(); } catch (Exception ex) { WX.CRM.Common.LogHelper.Error(string.Concat("CRMWinServices.GetScheduleJob:", ex.Message, ex.StackTrace)); } } } }