Spring Boot系列之quartz
1、新建项目项目核心分3部分,pom依赖spring-boot-starter-quartz,job类MyJob,MyJobApplication
2、引入quartz依赖。在pom.xml中引入jar依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId></dependency>
3、定义job类。该类继承QuartzJobBean类,并殂翼瑟擀实现executeInternal方法。此方法中可书写具体的业务逻辑处理。public class My夼猿勇麒Job extends QuartzJobBean { private final Logger LOG = LoggerFactory.getLogger(MyJob.class); private String name; public void setName(String name) { this.name = name; } @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { LOG.info("hi {}",this.name); }}
4、定义jobDetail和Trigger,并运行程序定义亭盍誓叭JobDetail的job类为MyJob,id为myjob1,name的值为myname1;定义籽疙牢阖调度Schedule每10s执行一次;定义Trigger,按照schedule机制来调度,并执行JobDetail相关任务。@SpringBootApplicationpublic class MyJobApplication { @Bean public JobDetail jobDetail() { return JobBuilder.newJob(MyJob.class) .withIdentity("myjob1").usingJobData("name","myname1") .storeDurably().build(); } @Bean public Trigger trigger() { SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder .simpleSchedule().withIntervalInSeconds(10).repeatForever(); return TriggerBuilder.newTrigger().forJob(jobDetail()) .withIdentity("mytrigger1").withSchedule(scheduleBuilder).build(); } public static void main(String[] args) { SpringApplication.run(MyJobApplication.class, args); }}
5、测试结果1从结果时间可以看出,每隔10s输出一次日志。可见quartz已经完美的调度了job任务
6、测试结果2修改调度设置,每分钟执行一次。运行结果见图SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder .simpleSchedule().withIntervalInMinutes(1).repeatForever();