quartz 一次触发执行多次job

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了quartz 一次触发执行多次job相关的知识,希望对你有一定的参考价值。

使用quartz做定时任务,设置执行* 0/5 * * * ? ,任务只有一个触发器
但是触发器触发后,JOB却执行了60多次,就好像触发器一瞬间出发了 60多次一样,有人碰见过吗
有观察了一下日志,我设置的表达式“* 0/5 * * * ”,但是日志显示的是到规定时间后,每一秒触发一回,触发一分钟
有解决方法吗

参考技术A 我碰到过,不知道你的是什么情况。
我是暂停了trigger等了一段时间,然后resumeTrigger的时候一次性把错过的全部执行了一次。
对错过的fire可以设定自己的规则。

https://my.oschina.net/chenleijava/blog/109904
CronTrigger

withMisfireHandlingInstructionDoNothing
——不触发立即执行
——等待下次Cron触发频率到达时刻开始按照Cron频率依次执行

withMisfireHandlingInstructionIgnoreMisfires
——以错过的第一个频率时间立刻开始执行
——重做错过的所有频率周期后
——当下一次触发频率发生时间大于当前时间后,再按照正常的Cron频率依次执行

withMisfireHandlingInstructionFireAndProceed
——以当前时间为触发频率立刻触发一次执行
——然后按照Cron频率依次执行
这个可能详细点,说了怎么配置。(我没试过)
http://blog.csdn.net/mxmxz/article/details/55273770追问

我现在的情况有点不一样,是触发器在时刻到来的时候,触发了60次。您上边说的属性我也实验了,不好使。

这个是我建立表达式型触发器时,用的方法,有问题吗??

参考技术B 我也踩过这个坑,你的cron表达式写法有问题
0 0/5 * * * ?
应该是这样

quartz启动 job 怎么执行

使用SimpleTriggerSimpleTrigger拥有多个重载的构造函数,用以在不同场合下构造出对应的实例:●SimpleTrigger(String name, String group):通过该构造函数指定Trigger所属组和名称;●SimpleTrigger(String name, String group, Date startTime):除指定Trigger所属组和名称外,还可以指定触发的开发时间;●SimpleTrigger(String name, String group, Date startTime, Date endTime, int repeatCount, long repeatInterval):除指定以上信息外,还可以指定结束时间、重复执行次数、时间间隔等参数;●SimpleTrigger(String name, String group, String jobName, String jobGroup, Date startTime, Date endTime, int repeatCount, long repeatInterval):这是最复杂的一个构造函数,在指定触发参数的同时,还通过jobGroup和jobName,让该Trigger和Scheduler中的某个任务关联起来。 参考技术A 使用SimpleTriggerSimpleTrigger拥有多个重载的构造函数,用以在不同场合下构造出对应的实例:●SimpleTrigger(Stringname,Stringgroup):通过该构造函数指定Trigger所属组和名称;●SimpleTrigger(Stringname,Stringgroup,DatestartTime) 参考技术B 根据配置定时执行。

以上是关于quartz 一次触发执行多次job的主要内容,如果未能解决你的问题,请参考以下文章

如何得到quartz中Job的执行状态

quartz启动 job 怎么执行

quartz 任务调度问题,每次都执行两次 相隔只有几微秒

怎么用quartz控制任务的执行顺序

quartz求助:每天定点执行一次,该怎么做?

quartz 每周日下午6点执行一次怎么写?