一、pom文件中導入相關依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>
二、分別編寫任務代碼類
/** * 任務一 */ public class MyQuartzJob extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("talk is cheap."); } }
/** * 任務二 */ public class MyQuartzJob1 extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("show me the code"); } }
三、分別編寫相關的scheduler類(也可以寫在一個類里)
/** * Scheduler來調度Trigger和JobDetil * JobDetail來實例化Job類並可以傳值 */ @Configuration public class MyScheduler { @Bean(name = "JobDetail") public JobDetail simpleJobDetail(){ JobDetail jobDetail = JobBuilder.newJob(MyQuartzJob.class).withIdentity("eclipse") .usingJobData("key","value").storeDurably().build(); return jobDetail; } @Bean(name = "trigger") public Trigger simpleJobTrigger(){ SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(4).repeatForever(); return TriggerBuilder.newTrigger().forJob(simpleJobDetail()) .withIdentity("sampleTrigger").withSchedule(scheduleBuilder).build(); } }
@Configuration public class MyScheduler1 { @Bean(name = "JobDetail1") public JobDetail simpleJobDetail1(){ JobDetail jobDetail = JobBuilder.newJob(MyQuartzJob1.class).withIdentity("eclipse1") .usingJobData("key","value").storeDurably().build(); return jobDetail; } @Bean(name = "trigger1") public Trigger simpleJobTrigger1(){ SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(6).repeatForever(); return TriggerBuilder.newTrigger().forJob(simpleJobDetail1()) .withIdentity("sampleTrigger1").withSchedule(scheduleBuilder).build(); } }
四、啟動springboot即可查看任務執行情況
具體的執行時間可以自己設置:這里分別是4秒和6秒: