【xxl-job】分布式任务调度系统xxl-job搭建

news2024/11/25 8:17:23

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。

更多介绍,请访问官网:分布式任务调度平台XXL-JOB

在这里插入图片描述

一、任务调度中心(基于docker)【Version 2.4.0】

前提条件:任务调度中心(xxl-job admin)依赖于 mysql,所以必须要安装mysql才行!安装mysql有2种方式:docker部署或者在线安装或者编译安装部署。具体操作请自行解决。

主要实现方式与官方推荐略有不同,这里将application.properties 配置文件映射到容器内部, 然后利用spring.config.location覆盖默认的启动配置文件

1. 数据库脚本下载并在数据库中执行

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/doc/db/tables_xxl_job.sql

如何执行不在此处赘述。

2. 拉取镜像

docker hub官方镜像地址: xxl-job-admin

docker pull xuxueli/xxl-job-admin

执行会报错:

Using default tag: latest Error response from daemon: manifest for xuxueli/xxl-job-admin:latest not found

为什么呢?因为官方没有打 latest 的tag标签,所以会提示下载失败!那怎么下载呢?必须制定版本才可以!截至本文发布时最新版本是2.4.0

那么下载命令为:

docker pull xuxueli/xxl-job-admin:2.4.0

也可在后续docker启动时自动拉取镜像。

3. 下载application.properties

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/xxl-job-admin/src/main/resources/application.properties

4. 修改application.properties

主要修改服务启动的端口(使用默认8080的话可不修改),mysql的连接信息,SMTP的连接信息(可不修改如果不需要SMTP发送邮件的话)
在这里插入图片描述

5. 启动容器

docker run -d --name xxl-job-admin \

-v [修改后的配置文件位置]:/application.properties \

-p 8008:8080 --network=1panel-network \

-e PARAMS='--spring.config.location=/application.properties' \

--restart always \

xuxueli/xxl-job-admin:2.4.0

下面是对每个参数的解释:

  • -d:在后台运行容器(以守护态模式运行)。
  • --name xxl-job-admin:指定容器的名称为"xxl-job-admin"。
  • -v [修改后的配置文件位置]:/application.properties:将修改后的配置文件挂载到容器中的/application.properties路径,可以通过这个文件来配置xxl-job-admin应用。
  • -p 8008:8080:端口映射,将主机的8008端口映射到容器的8080端口,这样你就可以通过主机的8008端口访问xxl-job-admin应用。
  • --network=1panel-network:将容器连接到名为"1panel-network"的网络,这样可以与其他容器进行通信。
  • -e PARAMS='--spring.config.location=/application.properties':设置环境变量PARAMS,其中--spring.config.location=/application.properties是指使用指定的配置文件启动xxl-job admin。
  • --restart always,当容器意外退出或宿主机重启时,Docker将自动重新启动xxl-job-admin容器
  • xuxueli/xxl-job-admin:2.4.0:指定要运行的Docker镜像,版本号为2.4.0,这是xxl-job-admin应用的官方镜像。

访问http://ip:8008/xxl-job-admin (如果修改过配置则访问 http://ip:[server.port]/[server.context-path])即可,默认用户名为admin,密码为123456

在这里插入图片描述

二、执行器【Version 2.4.0】

1. 下载Source并编译成jar包

2. 安装openjdk环境 [Ubuntu 2202]

运行下面代码即可

sudo apt install openjdk-11-jdk -y

完成后,可以通过检查 Java 版本来验证:

java -version

输出这种类型表示成功了

openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)

3. 下载并根据实际情况修改

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

主要修改xxl-job admin的地址,以及执行器的名字

在这里插入图片描述

4. 运行

nohup java -jar ./xxl-job-executor-sample-springboot.jar --spring.config.location=./application.properties &

下面是对以上命令行的解释:

  • nohup:nohup命令可以让程序在后台运行,即使当前终端会话关闭,程序也会继续运行。
  • java -jar ./xxl-job-executor-sample-springboot.jar:这是运行Java应用程序的命令。使用java -jar来指定要运行的JAR文件,这里是xxl-job-executor-sample-springboot.jar
  • --spring.config.location=./application.properties:通过这个参数指定应用程序使用的配置文件路径为./application.properties。可以根据实际情况修改配置文件路径。
  • &:这个符号表示将程序放到后台运行,允许继续在终端中执行其他命令。

5. 验证

执行器中管理中对应节点已经自动注册,接下来就可以安排定时排程去运行shell脚本等了。

在这里插入图片描述

完成xxl-job分布式任务调度系统初步部署,后续可以根据情况添加更多的执行器和节点,也可以根据实际情况添加xxl-job admin任务调度中心的HA部署等。文章中还有很多自己还没搞明白的,需要继续钻研。如有瑕疵非常抱歉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/750719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 Vite electron 开发桌面程序

Electron是一个跨平台的桌面应用程序开发框架,它允许开发人员使用Web技术(如HTML、CSS和JavaScript)构建桌面应用程序,这些应用程序可以在Windows、macOS和Linux等操作系统上运行。 Electron的核心是Chromium浏览器内核和Node.js…

个体化治疗策略:如何使用机器学习定制化药物?

一、引言 个体化治疗策略是一种基于患者个体特征和病情的定制化治疗方法,旨在提高治疗效果、减少药物副作用并优化患者的生命质量。传统的治疗方法往往采用标准化的治疗方案,忽视了个体差异和患者特定的需求。然而,每个患者的基因组、疾病特征…

JAVA——二维数组遍历二维数组的三种方法

目录 🍒java中二维数组的定义和赋值 🍒二维数组遍历的三种方法 🍇第一种:for循环遍历 🍇第二种方法:通过Arrays.deepToString()遍历 🍇第三种方法:通过for( : &a…

七大排序算法——希尔排序,通俗易懂的思路讲解与图解(完整Java代码)

文章目录 一、排序的概念排序的概念排序的稳定性七大排序算法 二、希尔排序核心思想代码实现 三、性能分析四、七大排序算法性能对比 一、排序的概念 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小&#xff0…

自动化测试与持续集成方案

目录 前言: 传统接口测试 接口测试自动化 接口自动化的持续集成 前言: 自动化测试和持续集成是软件开发过程中非常重要的环节。自动化测试可以提高测试效率和准确性,而持续集成则可以确保代码的稳定性和可靠性。 传统接口测试 不知道别…

使用WiFi测量仪进行机器人定位的粒子过滤器研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

50. Pow(x, n) 快速幂

题目链接:力扣 解题思路:直接使用for进行累乘会超时(时间复杂度O(n),n为指数n的大小),可以使用快速幂进行更快的幂运算(时间复杂度为O(logn)) 快速幂:核心思想就是每一次把指数缩小一半&#x…

华南农业大学|图像处理与分析技术综合设计|题目解答:读取电表示数

l 设计任务: ipa05.jpg是一幅电气柜上的电表图像,试采用图像处理与分析技术,设计适当的 算法和程序,找出电流表所在的区域,提取其指针位置,计算指针与表盘下沿 的夹角,进而判断当前电表的读数…

车载软件架构——车载诊断软件框架

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人们会在生活中不断攻击你。他们的主要武器是向你灌输对自己的怀疑:你的价值、你的能力、你的…

vue2+AntdesignVue a-input使用颜色选择器

不需要任何插件即可实现颜色选择器 a-input type设置为color即可 回调函数

vue进阶-消息的订阅与发布

📖vue基础学习-组件 介绍了嵌套组件间父子组件通过 props 属性进行传参。子组件传递数据给父组件通过 $emit() 返回自定义事件,父组件调用自定义事件接收子组件返回参数。 📖vue进阶-vue-route 介绍了路由组件传参,两种方式&…

Spring MVC异步上传、跨服务器上传和文件下载

一、异步上传 之前的上传方案,在上传成功后都会跳转页面。而在实际开发中,很多情况下上传后不进行跳转,而是进行页面的局部刷新,比如:上传头像成功后将头像显示在网页中。这时候就需要使用异步文件上传。 1.1 JSP页面 …

PT:report_timing实用技巧

report_timing -start_end_pair 默认report_timing -to 会报告到endpoint最差一条violation path。 用report_timing -max_path X就会报告到endpoint的X条path,每组startpoint /endpoint只报告最差的一条(在X范围内有多少报多少,下面同理)。 用report…

Android 生成pdf文件

Android 生成pdf文件 1.使用官方的方式 使用官方的方式也就是PdfDocument类的使用 1.1 基本使用 /**** 将tv内容写入到pdf文件*/RequiresApi(api Build.VERSION_CODES.KITKAT)private void newPdf() {// 创建一个PDF文本对象PdfDocument document new PdfDocument();//创建…

什么是从人类反馈中强化学习(RLHF)?

自从OpenAI公司发布ChatGPT以来,人们对大型语言模型(LLM)的这一重大进步感到兴奋。虽然ChatGPT与其他最先进的大型语言模型大小相同,但其性能要高得多,并且承诺支持新的应用程序或颠覆取代原有的应用程序。 ChatGPT的惊人表现背后的主要原因…

NAT—网络地址转换

目录 静态NAT 动态NAT NAPT—easy IP 多对多的NAPT 端口映射—高级用法 NAT—网络地址转换 IPV4地址不够用 NAT ABC—三类地址中截取了一部分地址(并且让这部分地址可以重复使用)—私网地址 A类地址中:10.0.0.0-10.255.255.255 (…

3. 学习分类 - 基于图像大小进行分类

3.1 设置问题 根据图片的尺寸,把图片分为纵向图像和横向图像。这种把图像分成两种类别的问题,就是二分类问题。 纵向图片示例: 横向图片示例: 这样就有了两个训练数据: 增加训练数据,并在图像中表示出来…

mac批量修改文件名为不同名字

mac批量修改文件名为不同名字怎么弄?很多小伙伴通过私信向我求助,用什么方法可以在mac电脑上批量修改文件名称,将大量文件修改成不同的名称。这可能是一项比较麻烦的操作,在电脑上进行过批量重命名的小伙伴都知道,一般…

汉服小姐姐【InsCode Stable Diffusion美图活动一期】

一、 Stable Diffusion 模型在线使用地址:https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型版本及相关配置: 模型:majicmixRealistic_v6 Lora:hanfu_ming 采样迭代步数(steps): 40 采样方法&am…

SCB后备保护器——保护电器的后备力量

在现代社会中,电力设备已经成为了不可或缺的一部分,而在使用电力设备的过程中,由于各种原因,电力设备可能会受到电涌的影响,从而导致设备损坏或者火灾事故的发生。为了有效保护电力设备的安全稳定运行,研发…