SimpleTrigger
SimpleTrigger可以满足的调度需求是:在具体的时间点执行一次,或者在具体的时间点执行,并且以指定的间隔重复执行若干次。比如,你有一个trigger,你可以设置它在2015年1月13日的上午11:23:54准时触发,或者在这个时间点触发,并且每隔2秒触发一次,一共重复5次。
SimpleTrigger的属性包括:开始时间、结束时间、重复次数以及重复的间隔。
例子一(指定时间开始触发,不重复)
SimpleTrigger trigger = (SimpleTrigger) newTrigger()
.withIdentity("trigger1", "group1")//通过group和name来标识
.startAt(myStartTime) // 指定日期 (java.util.Date)
.build();
例子二(指定时间开始触发,每隔10秒执行一次,重复10次)
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1") //定义name/group
.startAt(myStartTime)
//如果不指定开始时间,即使用startNow() ,表示立即执行
.withSchedule(simpleSchedule() //使用SimpleTrigger
.withIntervalInSeconds(10) //每隔几秒执行一次
.withRepeatCount(10))//重复10次(总共会执行11次)
//.repeatForever()) //一直执行
.build();
例子三(5分钟以后开始触发,仅执行一次)
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1") //定义name/group
.startAt(futureDate(5, IntervalUnit.MINUTE))
.build();
例子四(立即触发,每隔5分钟执行一次,直到22:00)
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1") //定义name/group
.withSchedule(simpleSchedule()
.withIntervalInMinutes(5)
.repeatForever())
.endAt(dateOf(22, 0, 0))
.build();
例子五(在下一个小时的整点触发,然后每2小时重复一次)
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1") //定义name/group
.startAt(evenHourDate(null)) //获取下一个小时的整点
.withSchedule(simpleSchedule()
.withIntervalInHours(2)
.repeatForever())
.build();
标题:Quartz触发器(SimpleTrigger)
作者:xingzhegu
地址:https://www.fxg.life/articles/2019/06/25/1561433341991.html