org.quartz.Scheduler是Quartz调度器的主要类,用于配置和管理定时触发任务。
Quartz Documentation官方文档地址
下面是一个简单的示例,演示如何配置定时触发任务:
首先,创建一个SchedulerFactory实例,并使用它创建一个Scheduler实例:
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
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();
// 启动Scheduler
scheduler.start();
// 定义一个任务
// 关闭Scheduler
scheduler.shutdown();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们首先创建了一个SchedulerFactory实例,使用StdSchedulerFactory的默认配置。然后,我们通过调用getScheduler()方法获取Scheduler实例。接下来,我们调用scheduler.start()方法启动Scheduler。
要定义一个定时触发任务,可以使用Quartz提供的Job和Trigger接口。Job接口代表要执行的任务,Trigger接口定义了任务执行的触发条件。
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(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10)
.repeatForever())
.build();
// 将任务和触发器关联到Scheduler
scheduler.scheduleJob(job, trigger);
// 启动Scheduler
scheduler.start();
// 关闭Scheduler
scheduler.shutdown();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
在上述示例中,我们定义了一个任务(MyJob)和一个触发器(SimpleTrigger)。任务使用JobBuilder创建,并分配一个唯一的标识符(“myJob"和"group1”)。触发器使用TriggerBuilder创建,并分配一个唯一的标识符(“myTrigger"和"group1”)。触发器使用SimpleScheduleBuilder定义了触发条件,这里是每10秒触发一次,并且重复执行。
最后,我们通过调用scheduler.scheduleJob(job, trigger)将任务和触发器关联到Scheduler,然后启动Scheduler。一旦Scheduler启动,它将按照触发器定义的触发条件执行任务。
Quartz是一个开源的作业调度框架,允许程序在特定时间执行任务。本文提供了一个简单的示例,展示如何创建SchedulerFactory,获取Scheduler实例,定义Job和Trigger来安排任务,以及启动和关闭Scheduler。示例中,任务每10秒执行一次,重复无限次。
3773

被折叠的 条评论
为什么被折叠?



