Java教程

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

本文主要是介绍分布式定时任务xxl-job(三),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本节主要内容:

    1、xxl-job-admin目录结构

    2、xxl-job-executor目录结构


一、整体目录介绍

    1、源代码包含三个目录

        1.1 xxl-job-admin目录

            1.1.1 实现包括任务管理、调度日志、执行器管理、用户信息管理的增删改查操作逻辑;

            1.1.2 启动服务后初始化各类调度器,包括任务执行器、失败重试执行器、任务注册执行器等;

            1.1.3 实现远程调用xxl-job-executor服务执行任务等功能。

        1.2 xxl-job-core目录

            xxl-job的核心逻辑代码,实现任务调度等业务功能。

        1.3 xxl-job-executor-example目录

            1.3.1 包括启动服务后注册到xxl-job-admin执行器服务;

            1.3.2 初始化执行器任务列表;

            1.3.3 执行xxl-job-admin调度的任务;

            1.3.4 业务代码的实现。

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

二、xxl-job-admin目录介绍

        2.1 controller包:提供对外控制器,如控制面板界面curd操作

            2.1.1 PermissionLimit注解类:鉴权注解(不加该注解的默认需要鉴权);

            2.1.2 CookieInterceptor、PermissionInterceptor、WebMvcConfig 拦截器配置类;

            2.1.3 WebExceptionResolver web异常类;

            2.1.4 IndexController:对应运行报表页面,包含控制面板首页运行报表与调度报表的接口、跳转登陆界面接口、登陆接口、推出登陆接口、初始化绑定日期接口;

            2.1.5 JobApiController:对外开放api,提供调度完成、执行器注册或移除的回调操作;

            2.1.6 JobCodeController:保存glue模式的源代码接口(任务管理->新增任务->选择运行模式为Glue);

            2.1.7 JobGroupController:对应执行器管理页面,包含执行器的curd接口;

            2.1.8 JobInfoController:对应任务管理页面,包含任务curd接口、开启、停止任务接口、调度一次任务接口、查询未来5次调度任务的时间点列表接口;

            2.1.9 JobLogController:对应调度日志页面,调度日志列表查询、清理日志、查询详情接口;

            2.1.10 UserController:对应用户管理页面,包含对管理员用户信息的curd。

        2.2 core包:核心工具类

            2.2.1 alarm包:处理任务异常的报警信息(新增任务页面 报警邮件);

            2.2.2 complete包:处理任务触发完成时回调的后续任务,如写日志,更新任务状态;

            2.2.3 conf包:core任务配置类,包括任务初始化、配置初始化等;

            2.2.4 cron包:处理cron表达式工具类;

            2.2.5 exception包:异常统一处理类;

            2.2.6 model包:数据库model实体类;

            2.2.7 old包:旧代码包,无需关注;

            2.2.8 route包:路由策略工具类,如故障转移、轮询、随机等路由策略;

            2.2.9 scheduler包:初始化调度helper类;

            2.2.10 thread包:各种helper类,包括调度任务helper、失败重试helper、执行器注册helper等;

            2.2.11 trigger包:任务调度执行类,调度后通知执行器执行任务的入口,将任务放入待执行任务的队列中执行;

            2.2.12 util包:cookie、字符集、jackson等工具类。

        2.3 dao包:数据库dao

            mapper层的dao类。

        2.4 service包:服务接口及实现类

            接口实现类。

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

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

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

三、xxl-job-executor目录介绍

    3.1 XxlJobConfig类:初始化变量、将执行器列表注册到xxl-job-admin服务,建立通信;

    3.2 IndexController类:无需关心;

    3.3 SampleXxlJob类:任务执行器核心类,业务代码写在这里,任务调度到执行器后,会执行这里的代码。当然如果是微服务的架构,可以在这里远程调用其他服务,实现业务功能;

    3.4 application.properties类:常量配置类。

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

四、xxl-job-core目录说明

       该源代码暂时无需了解,待把xxl-job与业务代码整合完成后,再来学习核心源代码。

    

预告下一篇文章内容:

1、微服务中间件nacos介绍与安装;

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

3、创建springboot业务模块实现xxl-job-executor远程调用其他微服务业务模块功能。




这篇关于分布式定时任务xxl-job(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!