实现 RemindScheduler 类
在这一步中,你将学习如何实现 RemindScheduler
类,该类用于调度和执行 RemindJob
。
-
打开位于 /home/labex/project/QuartzRemind/src/main/java/org/labex
目录下的 RemindScheduler.java
文件。
-
实现 getJobDetail()
方法,该方法为 RemindJob
创建并返回一个 org.quartz.JobDetail
实例。
public static JobDetail getJobDetail() {
return JobBuilder.newJob(RemindJob.class)
.withIdentity("reminderJob", "reminderGroup")
.build();
}
- 实现
getTrigger()
方法,该方法为 RemindJob
创建并返回一个 org.quartz.Trigger
实例。触发器将每隔 2 秒重复执行任务 3 次。
public static Trigger getTrigger() {
return TriggerBuilder.newTrigger()
.withIdentity("reminderTrigger", "reminderGroup")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.withRepeatCount(2))
.build();
}
- 实现
doScheduler()
方法,该方法使用 org.quartz.Scheduler
实例调度并执行 RemindJob
。
public void doScheduler() throws SchedulerException, InterruptedException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 启动调度器
scheduler.start();
System.out.println("调度已启动");
// 使用定义的 JobDetail 和 Trigger 调度任务
scheduler.scheduleJob(getJobDetail(), getTrigger());
// 休眠 10 秒
Thread.sleep(10000);
// 关闭调度器
scheduler.shutdown();
System.out.println("调度已完成");
}
此方法启动调度器,使用 JobDetail
和 Trigger
实例调度任务,等待 10 秒,然后关闭调度器。