很多应用场景Quartz运行于Windows服务
Conf 在这个基本结构里 是用来存放配置 和上一篇 控制台运行的一样的结构
jobs.xml 的配置清单
<!-- 任务配置-->
<job>
<name>TestJob</name>
<group>TestJob</group>
<description>测试Job</description>
<job-type>BusService.TestJob,BusService</job-type>
<durable>true</durable>
<recover>false</recover>
</job>
<trigger>
<cron>
<name>TestJobTrigger</name>
<group>TestJob</group>
<job-name>TestJob</job-name>
<job-group>TestJob</job-group>
<start-time>2015-11-26T22:19:00+08:00</start-time>
<cron-expression>0 0/1 * * * ?</cron-expression>
</cron>
</trigger>
quartz.config 的配置清单
<?xml version="1.0" encoding="utf-8" ?>
<quartz>
<add key="quartz.scheduler.instanceName" value="T+后台服务数据同步调度监控"/>
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/>
<add key="quartz.threadPool.threadCount" value="10"/>
<add key="quartz.threadPool.threadPriority" value="2"/>
<add key="quartz.jobStore.misfireThreshold" value="60000"/>
<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz"/>
<!--******************************Plugin配置*********************************************-->
<add key="quartz.plugin.xml.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz" />
<add key="quartz.plugin.xml.fileNames" value="~/Conf/jobs.xml"/>
<!--******************************远程输出配置*********************************************-->
<add key="quartz.scheduler.exporter.type" value="Quartz.Simpl.RemotingSchedulerExporter, Quartz"/>
<add key="quartz.scheduler.exporter.port" value="556"/>
<add key="quartz.scheduler.exporter.bindName" value="QzServiceTime"/>
<add key="quartz.scheduler.exporter.channelType" value="tcp"/>
<add key="quartz.scheduler.exporter.channelName" value="httpQuartz"/>
</quartz>
业务处理层
把业务层脱离出主程序有多个好处
1).Quartz是低耦合框架可以在不停止服务的情况下更新业务层
2).重用
每一分钟执行一次
0 0/1 * * * ?
安装服务
这边用我的是批处理
服务安装与卸载
安装
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe %~dp0QzServiceTime.exe
pause
exit
卸载
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /u %~dp0QzServiceTime.exe
pause
exit
启动
正常运行