概述
记录生活每一天:
分布式任务调度quartz:
主要是针对于两个不常用触发器 dailyTimeIntervalTrigger和calendarTimeIntervalTrigger的解释和运用。
其余的都不用解释了。
一、dailyTimeIntervalTrigger:
1、指定每天的某个时间段内,以一定的时间间隔执行任务。并且它可以支持指定星期。
2、他适合的需求类似于:一个任务每天9点开始执行,下午5点执行完毕,每个一小时执行一次,并且只有周一到周四执行。
3、它的属性有:
startTimeOfDay 每天开始时间
endTimeOfDay 每天结束时间
daysOfWeek 需要执行的星期
interval 执行间隔
repeatCount 重复次数
4、例子:
// 需求:我想这个任务每天9点开始执行,下午5点执行完毕,每隔一个小时执行一次,周一到周四执行
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(DailyTimeIntervalScheduleBuilder
.dailyTimeIntervalSchedule() // 使用dailyTimeIntervalSchedule
.startingDailyAt(TimeOfDay.hourAndMinuteOfDay(9, 0)) // 设置开始时间,从九点开始
.endingDailyAt(TimeOfDay.hourAndMinuteOfDay(17, 0)) // 设置结束时间,下午五点结束
.withIntervalInHours(1) // 每一小时执行一次
.withRepeatCount(14) // 一共执行14次(实际执行14+1次)
.onDaysOfTheWeek(Calendar.MONDAY, Calendar.TUESDAY, Calendar.WEDNESDAY, Calendar.THURSDAY) // 周一到周四执行。不写即每天执行
).build();
二、CalendarIntervalTrigger
1、类似于SimpleTrigger,指定从某一个时间开始,以一定的时间间隔执行的任务。 但是不同的是SimpleTrigger指定的时间间隔为毫秒,没办法指定每隔一个月执行一次(每月的时间间隔不是固定值)。
CalendarIntervalTrigger在SimpleScheduleBuilder基础上实现了秒,分钟,小时,天,月,年,星期等事件段的间隔。
WithInterval:指定要生成触发器的间隔和时间单位。
WithIntervalInHours:指定要生成触发器的间隔按小时来
WithIntervalInMinutes:指定要生成触发器的间隔按分钟来
WithIntervalInSeconds:指定要生成触发器的间隔按秒来
WithIntervalInDays:指定要生成触发器的间隔按日来
WithIntervalInWeeks:指定要生成触发器的间隔按周来
WithIntervalInMonths:指定要生成触发器的间隔按月来
WithIntervalInYears:指定要生成触发器的间隔按年来
2、相较于SimpleTrigger有两个优势:1、更方便,比如每隔1小时执行,你不用自己去计算1小时等于多少毫秒。 2、支持不是固定长度的间隔,比如间隔为月和年。但劣势是精度只能到秒。
3、CalendarIntervalTrigger的优势:支持固定长度的间隔,如:每周/每月执行一次。
4、例子:
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(CalendarIntervalScheduleBuilder
.calendarIntervalSchedule()
.WithInterval(1, IntervalUnit.Millisecond)
.withIntervalInMonths(1) // 每月执行一次
.WithIntervalInSeconds(1)
.WithIntervalInMinutes(1)
.WithIntervalInHours(1)
.WithIntervalInDays(1)
.WithIntervalInWeeks(1)
.WithIntervalInMonths(1)
.WithIntervalInYears(1))
).build();
转载自:https://zhuanlan.zhihu.com/p/38124817
最后
以上就是儒雅荔枝为你收集整理的分布式任务调度quartz:dailyTimeIntervalTrigger和calendarTimeIntervalTrigger的全部内容,希望文章能够帮你解决分布式任务调度quartz:dailyTimeIntervalTrigger和calendarTimeIntervalTrigger所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复