很多应用场景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.NETFramework64v4.0.30319InstallUtil.exe %~dp0QzServiceTime.exe pause exit
卸载
%SystemRoot%Microsoft.NETFramework64v4.0.30319InstallUtil.exe /u %~dp0QzServiceTime.exe pause exit
启动
正常运行