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(); } }