当前位置: 首页 > news >正文

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

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

(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 - 知乎

相关文章:

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

这篇笔记主要记录以下内容&#xff1a; &#xff08;1&#xff09;第一次启动xxl-job的过程 &#xff08;2&#xff09;模块、文件、数据库&#xff08;表和字段&#xff09;的作用 &#xff08;3&#xff09;极少的源码解读&#xff08;XxlJobConfig&#xff09; 有点像实…...

PDFMathTranslate,PDF多语言翻译,批量处理,学术论文,双语对照(WIN/MAC)

分享一个非常实用的PDF文档翻译项目——PDFMathTranslate。作为一个经常逛GitHub的开发者&#xff0c;我总喜欢翻看各种项目附带的论文&#xff0c;虽然大多时候是瞎研究&#xff0c;但却乐在其中。该项目能够完美保留公式、图表、目录和注释&#xff0c;对于需要阅读外文文献的…...

zerotier实现内网穿透(访问内网服务器)

moo 内网穿透工具 实用工具&#xff1a;zerotier 目录 内网穿透工具 Windows下zerotier安装 ubuntu系统下的zerotier安装 使用moon加速 Windows下zerotier安装 有了网络之后&#xff0c;会给你一个网络id&#xff0c;这个网络id是非常重要的&#xff0c;其它设备要加入…...

Formality:set_svf命令

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 svf文件的全称是Setup Verification for Formality&#xff0c;即Design Compiler提供给Formality的设置验证文件&#xff0c;它的作用是为Formality的指导模式(Gui…...

IDEA报错:无效的源发行版、无效的目标发行版

1. 无效的源发行版 创建项目的时候&#xff0c;会遇见这个报错&#xff0c;原因就是编译的JDK版本与发布版本不一致。 解决方法&#xff1a; 1.1. 找到问题所在地 英文&#xff1a;File -> Project Structure ->Project Settings 中文&#xff1a;文件->项目结构 …...

#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit插件使用及编写01

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

Scala中求斐波那契数列的第n项

求斐波那契数列的第n项 问题&#xff1a;求 斐波那契数列的第n项 记&#xff1a; 0 1 1 2 3 5 8 13 21 34 55 ... 从第3项开始 f(n) f(n-1) f(n-2) 1.基本情况&#xff08;直接能求的&#xff09;&#xff1a;f(0) 0,f(1) 1 2.递归情况&#xff08;大事化小&#xff0c;自己…...

ORACLE修改序列值为表内某字段(主键)最大值

ORACLE修改序列值为表内某字段&#xff08;主键&#xff09;最大值 想修改序列值&#xff0c;网上基本的都是自己看要加到多少&#xff0c;然后要么调步长&#xff0c;要么删了重建。 想直接用declare使用标量然后调&#xff0c;但是逻辑里面不能有DDL语句。 不过最后解决了 直…...

前端html,vue使用第三方地图详细教程,以百度地图为例,实现地图标注,导航,定位,路线规划,坐标转换

目录 示例&#xff1a; 准备&#xff1a; ?编辑 开始&#xff1a; 1、新建页面&#xff0c;在script标签中引入百度地图的api数据&#xff0c;把自己在控制台创建的应用的ak替换上去 2、创建一个dom对象&#xff0c;设置宽高 3、在js中初始化地图 进阶&#xff1a; 1…...

【入门】加密四位数

描述 某军事单位用 4 位整数来传递信息&#xff0c;传递之前要求先对这个 4 位数进行加密。加密的方式是每一位都先加上 5 然后对 10 取余数&#xff0c;再将得到的新数颠倒过来。 例如&#xff1a;原数是 1379 &#xff0c;那么每位加 5 对 10 取余数的结果为 6824 &#xf…...

[游戏开发] Unity中使用FlatBuffer

什么是FlatBuffer 为什么用FloatBuffer&#xff0c;优势在哪&#xff1f; 下图是常规使用的各种数据存储类型的性能对比。 对序列化数据的访问不需要打包和拆包——它将序列化数据存储在缓存中&#xff0c;这些数据既可以存储在文件中&#xff0c;又可以通过网络原样传输&…...

云计算IaaS-PaaS-SaaS三种服务模式转至元数据结尾

在当今数字化时代&#xff0c;云计算已经成为推动企业创新与发展的核心力量。而云计算的模型主要有三种&#xff1a;IAAS、PAAS 和 SAAS&#xff0c;它们各自在云计算的庞大体系中扮演着独特且关键的角色&#xff0c;恰似一座大厦的不同楼层&#xff0c;共同构建起强大而灵活的…...

【数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 测试说明 我的通关代码: 测试结果&#xff1a; 任务描述 本关任务&#xff1a;实现二叉排序树的基本算法。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;二叉树的创建、查找和删除算法。具体如下&#xff1a; (1)由…...

代码随想录第43天

300.最长递增子序列 # Dynamic programming. class Solution:def lengthOfLIS(self, nums: List[int]) -> int:if not nums: return 0dp [1] * len(nums)for i in range(len(nums)):for j in range(i):if nums[j] < nums[i]: # 如果要求非严格递增&#xff0c;将此行 …...

LeetCode - #158 用 Read4 读取 N 个字符 II

文章目录 摘要描述题目描述方法定义 题解答案题解代码题解代码分析示例测试及结果示例测试代码示例运行结果 时间复杂度空间复杂度总结关于我们 摘要 本文将详细解读一道与文件读取相关的编程问题&#xff1a;如何使用 read4 实现按需读取 n 个字符的 read 方法。我们不仅会提…...

C++(进阶) 第2章 多态

C&#xff08;进阶) 第2章 多态 文章目录 前言一、多态的概念二、多态的定义及实现1.虚函数2.虚函数的重写3.多态的条件4.多态的细节 三、析构函数的重写四、重载/重写/隐藏的对比五、抽象类抽象类 六、相关题目题目1题目2 七、const修饰八、多态原理九、虚函数放在地方总结 前…...

mac删除程序坞(Dock)中“无法打开的程序“

参考&#xff1a; Mac删除软件之后图标还在怎么办&#xff1f;https://blog.csdn.net/weixin_46500474/article/details/124284161Mac程序坞中软件删除出现残留“&#xff1f;”图标无法删除解决方法&#xff1a; https://blog.csdn.net/shenwenhao1990/article/details/12865…...

【Linux】vi/vim 使用技巧

文章目录 1. 简介vi和vim的历史vi和vim的区别安装vimUbuntu/DebianCentOS/RHELFedoramacOSWindows 2. 基本操作启动和退出启动退出 模式介绍普通模式插入模式命令模式 光标移动基本移动高级移动 3. 文本编辑插入文本删除文本复制和粘贴撤销和重做 4. 搜索与替换基本搜索搜索文本…...

Python自动化办公(系统维护及开发任务状态自动推送)

Python自动化办公, 1.需求分析 系统维护及开发人员的工作一般都会比较繁杂,领导们喜欢实时掌控项目的进度,但是领导们很多时候是不会自己主动去查看及分析项目进度数据的,干活的牛马们也没空整天日报,周报,月报,季报,年报…活又有了,又该想想怎么干,需求的核心是实现自动整理…...

CentOS7 Apache安装踩坑

Gnome桌面右键弹出终端。 [rootlocalhost ~]# yum repolist 已加载插件&#xff1a;fastestmirror, langpacks /var/run/yum.pid 已被锁定&#xff0c;PID 为 2611 的另一个程序正在运行。 Another app is currently holding the yum lock; waiting for it to exit... [root…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...