手记

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

本节主要内容:

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

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

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

流程图:

    

一、改进xxl-job-admin源码

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

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

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

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


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

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

    1.3 增加依赖包

        1.3.1 在最外层的pom.xml加入lombok依赖包

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

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

 

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

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

        1.5.1 增加对外开放接口

        1.5.2 服务熔断类

        1.5.3 数据传输对象dto

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

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

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

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

    3.1 引入xxl-job-admin-provider模块

    3.2 启动类增加包扫描路径

    3.3 增加测试代码

    3.4 测试最后的效果

        3.4.1 启动xxl-job-admin-server

        3.4.2 启动remote-module

        3.4.3 查看nacos服务注册

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

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

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

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

六、总结

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


3人推荐
随时随地看视频
慕课网APP