继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

台农一号
关注TA
已关注
手记 5
粉丝 6
获赞 13

本节主要内容:

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

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

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

流程图:

    http://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完成创建。

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

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

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

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

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

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

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

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

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

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

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

    1.3 增加依赖包

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

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

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

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

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

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

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

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

        1.5.1 增加对外开放接口

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

        1.5.2 服务熔断类

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

        1.5.3 数据传输对象dto

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

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

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

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

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

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

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

    3.2 启动类增加包扫描路径

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

    3.3 增加测试代码

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

    3.4 测试最后的效果

        3.4.1 启动xxl-job-admin-server

        3.4.2 启动remote-module

        3.4.3 查看nacos服务注册

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

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

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

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

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

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

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

六、总结

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


打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP