本节主要内容:
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 业务代码的实现。
二、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包:服务接口及实现类
接口实现类。
三、xxl-job-executor目录介绍
3.1 XxlJobConfig类:初始化变量、将执行器列表注册到xxl-job-admin服务,建立通信;
3.2 IndexController类:无需关心;
3.3 SampleXxlJob类:任务执行器核心类,业务代码写在这里,任务调度到执行器后,会执行这里的代码。当然如果是微服务的架构,可以在这里远程调用其他服务,实现业务功能;
3.4 application.properties类:常量配置类。
四、xxl-job-core目录说明
该源代码暂时无需了解,待把xxl-job与业务代码整合完成后,再来学习核心源代码。
预告下一篇文章内容:
1、微服务中间件nacos介绍与安装;
2、xxl-job-admin、xxl-job-executor服务注册到nacos;
3、创建springboot业务模块实现xxl-job-executor远程调用其他微服务业务模块功能。