Quartz学习

<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开始触发

原文地址:https://www.cnblogs.com/sherlock99/p/3701004.html