【笔记】分布式任务调度平台XXL-JOB

这篇笔记主要记录以下内容:

(1)第一次启动xxl-job的过程

(2)模块、文件、数据库(表和字段)的作用

(3)极少的源码解读(XxlJobConfig)

有点像实验报告(笑)文章前后都有列出参考文章,感谢各位大佬


参考:

 xxl-job详解_xxljob-优快云博客

 工作笔记(五十六)— 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-优快云博客

 工作笔记(五十六)— xxl-job - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值