Quartz 触发器分为两种SimpleTrigger 和 CronTrigger, SimplerTrigger 适用于以固定时间间隔执行重复N次或延时执行一次的定时任务, CronTrigger 适用于按照日历规则来执行定时任务, 如每月最后一天触发一次, 每周一触发一次等.
1. 核心API
quartz 提供了一组API, 用于快捷地创建SimpleTrigger或CronTrigger:
- TriggerBuilder: 用于构建触发器, 可以设置公有属性:触发器名称, 描述信息, 开始调度时间, 结束时间等
- DateBuilder: 时间工具类, 可便捷设置触发器开始调度时间和结束调度时间.
- SimpleScheduleBuilder: 用于构建simple触发器, 需要设置重复间隔, 重复次数
- CronScheduleBuilder: 用于构建cron触发器, 需要设置cron 表达式
2. 触发器创建实例
2.1 创建SimpleTrigger
SimpleTrigger 创建时, 需指定定时任务间隔和重复次数.
Trigger trigger1 = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "simpTrigger")
.withDescription("每隔3秒触发一次, 共触发10次, 立刻执行")
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(3000)
.withRepeatCount(10))
.startNow()
.build();
Trigger trigger2 = TriggerBuilder.newTrigger()
.withIdentity("trigger2", "simpTrigger")
.withDescription("5分钟后开始, 每隔一小时执行一次, 明天零点结束")
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withRepeatCount(1000 * 60 * 24)
.repeatForever())
.startAt(DateBuilder.futureDate(5, DateBuilder.IntervalUnit.MINUTE))
.endAt(DateBuilder.tomorrowAt(0, 0 , 0))
.build();
2.2 创建CronTrigger
CronTrigger 创建比较简单, 只需要设置cron表达式即可.
Trigger trigger1 = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "cronTrigger")
.withDescription("每隔3秒触发一次, 立刻执行")
.withSchedule(CronScheduleBuilder.cronSchedule("*/3 * * * * ?"))
.startNow()
.build();
来源:https://blog.csdn.net/zongf0504/article/details/89241381