这篇笔记主要记录以下内容:
(1)第一次启动xxl-job的过程
(2)模块、文件、数据库(表和字段)的作用
(3)极少的源码解读(XxlJobConfig)
有点像实验报告(笑)文章前后都有列出参考文章,感谢各位大佬
参考:
xxl-job详解_xxljob-CSDN博客
工作笔记(五十六)— xxl-job - 知乎
GitHub:https://github.com/xuxueli/xxl-job
gitee:xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
1、下载源码
git clone https://gitee.com/xuxueli0323/xxl-job.git
三个模块
(1)xxl-job-admin:调度中心
(2)xxl-job-core:核心依赖包,项目需要整合xxljob的时候只需要引入坐标
(3)xxl-job-executor-samples:示例项目
2、生成数据库
source D:\javaProjects\xxl-job\doc\db\tables_xxl_job.sql
(1)xxl_job_group:维护执行器信息
(2)xxl_job_info:维护调度信息
(3)xxl_job_lock:任务调度锁
(4)xxl_job_log:维护调度日志
(5)xxl_job_log_report:维护调度日志报表信息
(6)xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
(7)xxl_job_registry:在线的执行器注册表,维护在线的执行器和调度中心机器地址信息
(8)xxl_job_user:保存系统用户信息
在后续启动过程中会逐一介绍各个表和字段的具体作用
3、修改src/main/resources/application.properties文件
(1)端口
(2)数据库ip、端口、用户名、密码
(3)告警邮箱
4、运行XxlJobAdminApplication
环境:Java17+maven2.9.6+MySQL8.0.36
打开url:http://localhost:8080/xxl-job-admin
账号:admin/123456
用户账号信息记录在sql表xxl_job_user中,这条数据是执行sql文件后自动就有的,角色(role)是管理员(1)
登录后页面如下
若要修改密码可在用户管理界面点击编辑按钮进行操作
5、xxl-job-executor-samples
以xxl-job-executor-sample-springboot为例
主要有pom.xml、application.properties(配置文件)、XxlJobExecutorApplication(启动类)、XxlJobConfig.java(xxljob配置类)、SampleXxlJob(bean模式下新建job)
(1)pom.xml需要引用xxl-job-core
(2)application.properties配置执行器
文件:src/main/resources/application.properties
(3)生成XxlJobSpringExecutor
XxlJobConfig类文件:src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
XxlJobConfig将读取application.properties中的设置
并根据设置生成XxlJobSpringExecutor
其中,XxlJobExecutor类写在src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java中
(4)新建job任务
(5)新增执行器
名称随便写。因为没有启动代码,所以新增后此时OnLine机器地址为0
此时,sql表xxl_job_group中也出现了一条新数据
(6)启动代码
>>>>>> sql表xxl_job_group <<<<<<
不修改properties文件,直接启动成功后xxl-job-executor-sample的OnLine机器地址不再为0,点击查看可查看ip,即已经注册成功
- sql表xxl_job_group中address_list字段就保存着执行器地址列表,多地址以逗号分隔。查看数据库可发现address_list字段中的ip地址与浏览器的OnLine机器地址相同
- sql表xxl_job_group中app_name字段与执行器编辑页面中的AppName相对应
验证:修改properties文件中的xxl.job.executor.appname,重新启动代码
刷新数据库,可以看到xxl-job-executor-sample的address_list字段为空,而xxl-job-executor- sample2的address_list字段为原来xxl-job-executor-sample的address_list字段内容
执行器管理页面当然也有相应改变
- address_type用于表示执行器地址类型:0=自动注册、1=手动录入。刚刚新增执行器是机器地址一栏没有填写,即为自动注册
- sql表xxl_job_group中title字段与执行器编辑页面中的名称相对应
>>>>>> sql表xxl_job_registry <<<<<<
启动后,如下图所示,表xxl_job_registry会新出现一条数据。如果stop停止运行程序,该条数据会消失。也就是说,表xxl_job_registry只会维护在线的执行器信息
(7)新增/更新任务
JobHandler填写内容与@XxlJob注解内容相同
保存后刷新数据库可看见表xxl_job_info有一条新数据,当中内容就是刚刚新增/更新任务所保存的信息
各字段含义如下图所示
- job_desc:任务描述
- executor_handler:与@XxlJob注解所填内容相同
执行一次后即为执行相应job(这里执行了一次demo和两次demo2)
刷新数据库,表xxl_job_log有一条新数据,记录了此次执行的一些信息
各字段含义如下图所示
参考:(如涉及版权等问题请联系我)
xxl-job详解_xxljob-CSDN博客
工作笔记(五十六)— xxl-job - 知乎