导入maven依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
实现Job
接口,实现
void execute(JobExecutionContext context)
方法
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.stereotype.Component;
public class MyJob implements Job {
private static int num;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println(num++);
}
}
创建执行器
package com.hand.service.job;
import com.hand.service.MyJob;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.concurrent.TimeUnit;
public class Test {
public static void main(String[] args) throws Exception {
// 1、创建调度器Scheduler
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
// 2、创建JobDetail实例,并与MyJob类绑定(Job执行内容)
JobDetail jobDetail = JobBuilder
.newJob(MyJob.class)
.withIdentity("job1", "group1")
.build();
// 3、构建Trigger实例,每隔1s执行一次
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "triggerGroup1")
.startNow()//立即生效
.withSchedule(SimpleScheduleBuilder
.simpleSchedule()
//每隔1s执行一次
.withIntervalInSeconds(1)
//循环执行
.repeatForever())
.build();
//4、执行
scheduler.scheduleJob(jobDetail, trigger);
System.out.println("--------任务调度开始执行 ! ------------");
scheduler.start();
//任务调度一直执行,执行时间为2分钟,之后停止执行任务调度
TimeUnit.MINUTES.sleep(2);
scheduler.shutdown();
System.out.println("--------任务调度执行结束 ! ------------");
}
}