要在每天指定的时间触发任务,可以使用CronTrigger
来定义触发条件。Cron表达式是一种用于配置时间触发的灵活表达方式。下面是一个示例,演示如何在每天指定的时间触发任务:
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class SchedulerExample {
public static void main(String[] args) {
try {
// 创建SchedulerFactory实例
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// 获取Scheduler实例
Scheduler scheduler = schedulerFactory.getScheduler();
// 定义一个任务
JobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob", "group1")
.build();
// 定义一个触发器
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(9, 30)) // 每天9:30触发
.build();
// 将任务和触发器关联到Scheduler
scheduler.scheduleJob(job, trigger);
// 启动Scheduler
scheduler.start();
// 关闭Scheduler
scheduler.shutdown();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
在上述示例中,我们使用CronScheduleBuilder来配置触发器的触发条件。通过调用CronScheduleBuilder.dailyAtHourAndMinute(9, 30)
,我们设置了触发时间为每天的9:30。
通过这种方式,任务将在每天指定的时间触发。你可以根据需要自定义Cron表达式来实现其他时间触发的需求。例如,要在每天的15:30触发任务,可以使用CronScheduleBuilder.dailyAtHourAndMinute(15, 30)
。