Quartz框架是java中的调度框架,可以任意的控制任务执行的开始时间、结束时间、时间间隔和以日历为基准的时间调度。同时Quartz框架将任务Job和触发器Trigger分开,一个Job任务可以同时绑定多个Trigger触发器,这种松耦合的状态使Job可以轻松的复用。
Quartz框架设计到的主要的类分为三种:
- Scheduler:主要的调度类,负责任务的初始化、赋值、调度
- Job:代表了一个任务类,也就是我们最终逻辑的实现类
- Trigger:触发器,代表了任务执行的时间点
还是从最简单的HelloWorld来说一下Quartz框架的使用
首先定义任务Job
public class HelloJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("hello world");
}
}
然后利用Scheduler去调度Job
SchedulerFactory factory = new StdSchedulerFactory();
try {
Scheduler scheduler = factory.getScheduler();
scheduler.start();
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1").build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().repeatForever().withIntervalInSeconds(10))
.build();
scheduler.scheduleJob(jobDetail, trigger);
} catch (Exception e) {
e.printStackTrace();
}
这样就定义了一个定时的任务,每10s就会去执行一个打印hello world的任务了。