springboot集成quartz實現任務調度
阿新 • • 發佈:2019-01-01
定義類 over oot out org row pack com 設計
quartz
概述
- 特點
- 強大的調度功能
- 靈活的應用方式
- 分布式和集群能力
- 用到的設計模式
- Builder 模式
- factory模式
- 組件模式
- 鏈式寫法
- 體系結構
- 調度器
- 任務
- 觸發器
- 調度器
- 架構圖
-
spring boot quartz
-
- pom配置
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.1.3.RELEASE</version> </dependency>
- 編寫job類
package com.ltf.shop.quartzdemo; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class HelloJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("hello word quartz"); } }
- 編寫quartz定義類
package com.ltf.shop.quartzconfig; import com.ltf.shop.quartzdemo.HelloJob; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.quartz.CronTriggerFactoryBean; import org.springframework.scheduling.quartz.JobDetailFactoryBean; import org.springframework.scheduling.quartz.SchedulerFactoryBean; @Configuration public class QuartzConfig { /** * 創建Job對象 */ @Bean public JobDetailFactoryBean jobDetailFactoryBean() { JobDetailFactoryBean factory=new JobDetailFactoryBean(); factory.setJobClass(HelloJob.class); return factory; } /** * 創建Job對象 */ // @Bean // public SimpleTriggerFactoryBean simpleTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) // { // SimpleTriggerFactoryBean simpleTriggerFactoryBean=new SimpleTriggerFactoryBean(); // //關聯JobDetail對象 // simpleTriggerFactoryBean.setJobDetail(jobDetailFactoryBean.getObject()); // //設置執行的毫秒數 // simpleTriggerFactoryBean.setRepeatInterval(3000); // simpleTriggerFactoryBean.setRepeatCount(15); // return simpleTriggerFactoryBean; // } // /** // * 創建scheduler對象 // */ // @Bean // public SchedulerFactoryBean schedulerFactoryBean(SimpleTriggerFactoryBean simpleTriggerFactoryBean) // { // SchedulerFactoryBean schedulerFactoryBean=new SchedulerFactoryBean(); // schedulerFactoryBean.setTriggers(simpleTriggerFactoryBean.getObject()); // return schedulerFactoryBean; // } @Bean public CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) { CronTriggerFactoryBean cronTriggerFactoryBean=new CronTriggerFactoryBean(); cronTriggerFactoryBean.setJobDetail(jobDetailFactoryBean.getObject()); cronTriggerFactoryBean.setCronExpression("0/2 * * * * ?"); return cronTriggerFactoryBean; } @Bean public SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean) { SchedulerFactoryBean schedulerFactoryBean=new SchedulerFactoryBean(); schedulerFactoryBean.setTriggers(cronTriggerFactoryBean.getObject()); return schedulerFactoryBean; } }
springboot集成quartz實現任務調度