<quartz>
<add key="quartz.scheduler.instanceName" value="AOP" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="1" />
<add key="quartz.threadPool.threadPriority" value="2" />
<add key="quartz.jobStore.misfireThreshold" value="60000" />
<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
<add key="quartz.plugin.xml.type" value="Quartz.Plugin.Xml.JobInitializationPlugin, Quartz" />
<add key="quartz.plugin.xml.fileNames" value="~/quartz_jobs.xml" />
</quartz>
start-time(选填) 任务开始执行时间utc时间,北京时间需要+08:00,如:<start-time>2012-04-01T08:00:00+08:00</start-time>表示北京时间2012年4月1日上午8:00开始执行,注意服务启动或重启时都会检测此属性,若没有设置此属性,服务会根据cron-expression的设置执行任务调度;若start-time设置的时间比当前时间较早,则服务启动后会忽略掉cron-expression设置,立即执行一次调度,之后再根据cron-expression执行任务调度;若设置的时间比当前时间晚,则服务会在到达设置时间相同后才会应用cron-expression,根据规则执行任务调度,一般若无特殊需要请不要设置此属性
quartz.threadPool.threadCount 设置为1的时候 可以保证每次只运行一个job 不会因为上个job还没执行完 到触发时间点新开一个job
quartz.jobStore.misfireThreshold说明 这个是设置错过触发的时间门槛的 意思就是 错过的时间超过了这个门槛 就放弃这次调度 等待下次触发
举例 任务是每秒触发一次 任务时长10秒
超时门槛60s
之前 现在 下一
41 42 43
42 43 44
虽然已经过了10秒 但还是从计划的43时间点继续执行 补上错过的触发
超时门槛1s
之前 现在 下一
38 48 49
48 58 59
可以注意到 预计下次49时间点的 由于超时了(现在58) 放弃错过的触发 直接从58开始触发