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

系列文章目录

第一章 - 分布式定时任务框架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注解,让它实例化,就可以获取到。

在这里插入图片描述

定时任务也在跑了:

在这里插入图片描述


总结

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

其他

可以在微信公众号搜索“程序员阿坤”或者扫描下方二维码,加入我的公众号,目前“项目学习小组”正在热更基于springboot+vue的前后端分离的期刊在线投稿系统(技术和功能都做了调整有很多亮点!)公众号会有详细介绍,另外公众号会定时分享学习方法,以及一些工作中的技术干货一起学习交流!
在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿坤...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值