1.导入包
pom.xml
<!--quartz-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
2.执行体
package com.example.demo.Quartz;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 任务执行类
*/
public class QuartzJob implements Job {
@Override
public void execute(JobExecutionContext content) throws JobExecutionException {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
JobDataMap dataMap = content.getJobDetail().getJobDataMap();
String param = dataMap.getString("param");
System.out.println("传递的参数是="+param );
}
}
3.创建任务
package com.example.demo.Quartz;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class QuartzManager {
//创建调度器
public static Scheduler getScheduler() throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
return schedulerFactory.getScheduler();
}
public static void schedulerJob() throws SchedulerException{
//创建任务
JobDetail jobDetail = JobBuilder.newJob(QuartzJob.class).withIdentity("job1", "group1").build();
jobDetail.getJobDataMap().put("param","ooo");
//创建触发器 每3秒钟执行一次
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group3")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(3).repeatForever())
.build();
Scheduler scheduler = getScheduler();
//将任务及其触发器放入调度器
scheduler.scheduleJob(jobDetail, trigger);
//调度器开始调度任务
scheduler.start();
}
public static void main(String[] args) throws SchedulerException {
QuartzManager mainScheduler = new QuartzManager();
mainScheduler.schedulerJob();
}
}