第五章 -分布式定时任务框架ElasticJob之SpringBoot整合SimpleJob作业(实战二)

导读:本篇文章讲解 第五章 -分布式定时任务框架ElasticJob之SpringBoot整合SimpleJob作业(实战二),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

系列文章目录

第一章 – 分布式定时任务框架ElasticJob之JavaApi整合Simple作业
第二章 – 分布式定时任务框架ElasticJob之JavaApi整合DataflowJob作业
第三章 – 分布式定时任务框架ElasticJob之Spring框架整合SimpleJob作业
第四章 – 分布式定时任务框架ElasticJob之Spring框架整合DataflowJob作业
第五章 – 分布式定时任务框架ElasticJob之SpringBoot整合SimpleJob作业(实战一)



前言

上一节我们实现了zookeeper注册中心自动装配,本节我们介绍SimpleJob作业如何自动注册进JobScheduler,并启动SpringBoot时让定时任务跑起来。


一、新建一个SimpleJob任务

需要继承SimpleJob接口,在execute方法里写业务代码,需要定时执行的业务逻辑

在这里插入图片描述

二、编写@ElasticSimpleJob注解

写这个注解的目的是,我们可以在我们的SimpleJob任务上加这个注解,通过下文编写的SimpleJobAutoConfig(SimpleJob自动配置类)通过这个注解获取到所有使用这个注解的SimpleJob类,从而一次性将这些类注册进JobScheduler,在autoconfi包下新建一个ElasticSimpleJob注解文件,定义相关定时任务变量

在这里插入图片描述
在这里插入图片描述

在MySimpleJob上写上@ElasticSimpleJob注解

在这里插入图片描述

三、新建SimpleJob自动配置类

实现SimpleJob类型任务自动配置

在这里插入图片描述

使用Java反射完成作业注册,这步的目的是将新建的定时任务实现类注册进JobScheduler,只有这样定时任务才会生效,且项目启动后就会生效。代码注释写的很详细,完整代码会放在github。

在这里插入图片描述

四、启动SpringBoot项目

在这里插入图片描述

发现项目启动时报错,原来我没有启动zookeeper,去启动zookeeper,进入zookeeper安装包bin目录,双击zkServer.cmd启动zookeeper

在这里插入图片描述

然后重新启动SpringBoot,发现又报了另一个错:

在这里插入图片描述

意思大概是zookeeper协调注册中心没有注入进来,然后考虑到SimpleJobAutoConfig不一定是在zookeeperAutoConfig后面执行的,因此我们在SimpleJobAutoConfig加上注解@AutoConfigureAfter(ZookeeperAutoConfig.class),保证在zookeeperAutoConfig后执行,此外我们需要在spring.factories配置文件中加上SimpleJobAutoConfig路径,因为SimpleJobAutoConfig也是放在autoconfig包下,启动类扫不到这个包,我们需要在spring.factories配置文件中加上SimpleJobAutoConfig,让spring知道它在哪里。

在这里插入图片描述

再次启动,发现启动成功,但是debug发现使用@ElasticJobSimple的注解的bean是0

在这里插入图片描述

意味着没有获取到使用这个注解的类,那么为啥没获取到呢?我们是通过spring上下文获取的,没有实例化的类是获取不到的,因此我们在MySimpleJob类上加上@Component注解,让它实例化,就可以获取到。

在这里插入图片描述

定时任务也在跑了:

在这里插入图片描述


总结

完整代码可点击此处下载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71702.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!