为了账号安全,请及时绑定邮箱和手机立即绑定

分布式定时任务xxl-job(五)

本节主要内容:

1、修改xxl-job-admin源代码;

2、将xxl-job-admin服务注册到nacos;

3、模拟remote-module服务远程调用xxl-job-admin api实现动态生成任务;

流程图:

    https://img1.sycdn.imooc.com/62c1bc1e0001b1f109740331.jpg

一、改进xxl-job-admin源码

    1.1 将xxl-job-admin拆分为xxl-job-admin-provider和xxl-job-admin-server两个模块

           在xxl-job-admin模块下右键->new->Module->选择maven 下一步->选择所属父级模块、修改模块名称->点击finish完成创建。

https://img4.sycdn.imooc.com/62c00b43000102ad25071541.jpg

https://img1.sycdn.imooc.com/62c00b500001426525121542.jpg

https://img4.sycdn.imooc.com/62c00b5e0001bc7625571534.jpg

        若出现pom.xml文件被忽略(文件名称灰色且文件名称有一个横杠),则需要进入flie->settings->build, Execution,Deployment->build tool->maven->ignore file 去除忽略pom文件的选项->ok。

https://img1.sycdn.imooc.com/62c00be700012a6925571537.jpg

https://img3.sycdn.imooc.com/62c00bf3000120c525601537.jpg

            同样的方式创建xxl-job-admin-server模块

https://img1.sycdn.imooc.com/62c00c010001aa5525601541.jpg

    1.2 将原来xxl-job-admin模块的src目录的文件拷贝到xxl-job-admin-server模块

https://img4.sycdn.imooc.com/62c15d240001ce6025411544.jpg

    如有报错,则重新引入依赖路径解决报错问题。

    1.3 增加依赖包

        1.3.1 在最外层的pom.xml加入lombok依赖包https://img4.sycdn.imooc.com/62c15d7f0001444a25451540.jpg

        1.3.2 在xxl-job-admin模块的pom.xml加入openfeign、loadbalance、lombok依赖包

https://img1.sycdn.imooc.com/62c15d9b0001444a25451540.jpg

        1.3.3 xxl-job-admin-server的pom.xml加入如下依赖包

 https://img4.sycdn.imooc.com/62c15ddf0001663725391538.jpg

    1.4 在启动类增加如下注解和扫描信息

https://img1.sycdn.imooc.com/62c15e930001f45725451548.jpg

    1.5 修改xxl-job-admin-provider模块代码

        1.5.1 增加对外开放接口

https://img4.sycdn.imooc.com/62c15f5b0001d6fc25571542.jpg

        1.5.2 服务熔断类

https://img4.sycdn.imooc.com/62c15f850001058425501540.jpg

        1.5.3 数据传输对象dto

https://img1.sycdn.imooc.com/62c15f9100017cc425521549.jpg

二、将xxl-job-admin服务注册到nacos

    2.1 上面我们已经将需要的依赖和注解加入xxl-job-admin模块中。还需要将nacos配置加入配置文件中即可

https://img1.sycdn.imooc.com/62c16016000108bb25491537.jpg

    至此xxl-job-admin模块的代码调整完成。

三、remote-module服务远程调用xxl-job-admin api实现动态生成任务

    3.1 引入xxl-job-admin-provider模块https://img2.sycdn.imooc.com/62c160dc0001e15e25551535.jpg

    3.2 启动类增加包扫描路径

https://img1.sycdn.imooc.com/62c1610a000148d225601536.jpg

    3.3 增加测试代码

https://img2.sycdn.imooc.com/62c161200001302825601538.jpg

    3.4 测试最后的效果

        3.4.1 启动xxl-job-admin-server

        3.4.2 启动remote-module

        3.4.3 查看nacos服务注册

https://img2.sycdn.imooc.com/62c162860001521225561482.jpg

        3.4.4 利用postman发送请求,查看打印日志

https://img2.sycdn.imooc.com/62c1629a0001a37f25591539.jpg

https://img2.sycdn.imooc.com/62c162a90001933625541541.jpg

        这个例子只是模拟动态生成任务,请大家按照这个思路自行实现补全逻辑。

五、本系列文章代码地址:

git@gitee.com:springboot_lbg_demo/xxl-job-remote.git

六、总结

    本系列文章主要是讲解xxl-job的部署及整个微服务springcloudalibaba + nacos,实现动态新增定时任务,实现了定点执行任务的效果,而不是每隔几分钟或者几秒钟整体刷一遍。当然本系列课程只是着重在于使用xxl-job这个优秀的定时任务框架及结合一些使用定时任务的场景,要使用好xxl-job还需考虑较多的问题,比如分布式事务、微服务中的灰度和生产分组如何进行数据隔离等问题。


点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消