【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目

news2024/11/17 23:46:00

在这里插入图片描述

                               💧 分布式任务调度平台 X X L − J O B 急速入门:从零开始将 X X L − J O B 接入到自己的项目 \color{#FF1493}{分布式任务调度平台 XXL-JOB 急速入门:从零开始将 XXL-JOB 接入到自己的项目} 分布式任务调度平台XXLJOB急速入门:从零开始将XXLJOB接入到自己的项目💧          


🌷 仰望天空,妳我亦是行人.✨
🦄 个人主页——微风撞见云的博客🎐
🐳 《数据结构与算法》专栏的文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
💧 《Java学习笔记》专栏的文章是本人在Java学习中总结的一些知识点~ 💐
🥣 《每天一点小知识》专栏的文章可以丰富你的知识库,滴水成河~ 🌊
🎐 《Redis》专栏的文章是在学习Redis时,整理的笔记与记录的思考~ 🥏
🥕 《RabbitMQ》专栏的文章是在学习尚硅谷课程时整理的笔记,方便复习巩固~ 🍑
🪁 希望本文能够给读者带来一定的帮助~🌸文章粗浅,敬请批评指正!🐥


文章目录

  • 🐳XXL-JOB急速入门:从零开始将XXL-JOB接入到自己的项目
    • 1. XXL-JOB简介
    • 2. XXL-JOB的作用
    • 3. XXL-JOB项目地址
    • 4. 如何使用XXL-JOB
      • 步骤1:下载和部署XXL-JOB调度中心
      • 步骤2:创建任务
    • 5. 如何把XXL-JOB接入到自己的项目中
      • 步骤1:引入XXL-JOB依赖
      • 步骤2:引入配置
      • 步骤3:创建任务执行类
      • 步骤3:运行主启动类
    • 6. 总结
  • 🐳结语


🐳XXL-JOB急速入门:从零开始将XXL-JOB接入到自己的项目

1. XXL-JOB简介

XXL-JOB是一个分布式任务调度平台,用于解决大规模分布式任务调度问题。它基于Java语言开发,提供了轻量级、易扩展的任务调度和管理功能。XXL-JOB的设计目标是使得任务调度变得更加简单、高效和可靠,适用于各种任务调度场景。

💧主要特点包括:

  • 分布式:支持集群环境下的任务调度,可通过多个执行器部署实现高可用和负载均衡。
  • 调度中心:提供Web管理界面,方便管理任务、查看执行日志和监控任务状态。
  • 执行器:负责执行调度中心分派的任务,支持任务执行失败重试和任务超时告警等功能。

在这里插入图片描述

2. XXL-JOB的作用

💧XXL-JOB可以广泛应用于各种任务调度场景,特别适用于以下情况:

  • 定时任务:定时执行一些重复性工作,如数据备份、日志清理等。
  • 延时任务:在指定时间点执行任务,如订单超时处理、消息发送等。
  • 流程任务:按照一定的流程顺序执行任务,如数据ETL处理、数据导入导出等。

XXL-JOB通过调度中心统一管理任务,并将任务分派给执行器执行,可以让任务调度变得更加灵活、高效和可控,有效提高任务处理能力和系统稳定性。

3. XXL-JOB项目地址

💧XXL-JOB的开源项目地址:

  • GitHub:https://github.com/xuxueli/xxl-job
  • Gitee:https://gitee.com/xuxueli0323/xxl-job

我们可以在这里找到详细的文档、示例和最新版本的XXL-JOB。

4. 如何使用XXL-JOB

步骤1:下载和部署XXL-JOB调度中心

💧首先,我们需要下载XXL-JOB调度中心的代码并进行部署,可以通过以下步骤来完成:

  1. 克隆或下载XXL-JOB调度中心的代码:https://gitee.com/xuxueli0323/xxl-job

在这里插入图片描述

  1. 使用IDEA打开项目,等待依赖的加载。

在这里插入图片描述

  1. doc/db 目录下的sql文件在自己的数据库中执行,得到相应的库表。

在这里插入图片描述

在这里插入图片描述

  1. 找到xxl-job-admin目录,修改application.properties文件,配置数据库连接等相关配置。

在这里插入图片描述

  1. 运行XxlJobAdminApplication类,启动调度中心。

在这里插入图片描述

  1. 访问 http://localhost:8080/xxl-job-admin ,默认账户admin,密码123456

在这里插入图片描述

  1. Web界面加载成功,接下来进入第二步。

在这里插入图片描述

步骤2:创建任务

💧接下来我们将创建一个简单的定时任务 ↓

  1. 找到xxl-job-executor-sample-springboot 模块下的 SampleXxlJob层级略多,不要找错了 ,修改实例中的代码,我们简单打印一句话即可。

在这里插入图片描述

  1. 还是这个模块,启动该模块的主启动类XxlJobExecutorApplication

在这里插入图片描述

  1. 回到Web界面,找到左侧的任务管理,点击右侧绿色的新增按钮。

在这里插入图片描述

  1. 如图所示输入信息,由于我们的定时任务是BEAN模式,所以我们也选择BEAN,值得一提的是:这里有个Cron表达式,可能很多同学第一次使用不清楚,没关系,点击右侧按钮,我们可以在里面选择需要的模式,这里选择的从0秒开始,每2秒执行一次,选择之后,在下方会展示出该种选择对应的结果,十分照顾新人。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 选择好之后点击保存,点击操作,点击启动,启动成功。

在这里插入图片描述
在这里插入图片描述

  1. 回到我们项目中,可以发现,每间隔2秒,控制台会打印对应的语句,nice,大功告成!

在这里插入图片描述

  1. 假如我们不想让它执行了,回到页面点击停止 ,发现控制台中的光标不再移动,任务结束。

在这里插入图片描述

在这里插入图片描述

  1. 我们还可以在左侧的调度日志中查看对应的执行记录,包括调度时间、调度结果等等,是不是很方便!

在这里插入图片描述

5. 如何把XXL-JOB接入到自己的项目中

💧在实际项目中,我们可能需要将XXL-JOB集成到自己的项目中,实现对任务的更细粒度控制和定制。

步骤1:引入XXL-JOB依赖

💧在项目中引入XXL-JOB的相关Maven依赖:

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>2.3.0</version>
</dependency>

在这里插入图片描述

步骤2:引入配置

💧我们把刚才 xxl-job-executor-sample-springboot 中的 XxlJobConfigapplication.properties 引入到自己的项目中。复制即可

在这里插入图片描述

步骤3:创建任务执行类

💧在中创建一个任务执行类,同样编写一个demo定时任务。直接copy过来

import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;

@Component
public class DemoJobHandler {

    /**
     * 1、简单任务示例(Bean模式)
     */
    @XxlJob("demoJobHandler")
    public void demoJobHandler() throws Exception {
        System.out.println("hello,XXL-JOB!!!");
    }
}

步骤3:运行主启动类

💧启动后,我们可以观察控制台的信息,提示SUCCESS

在这里插入图片描述

💧启动完成后,发现定时任务执行成功!之后就可以自行拓展了! 完结撒花🌸🌸🌸~

在这里插入图片描述

6. 总结

通过本文,我们对XXL-JOB进行了简要介绍,了解了它的作用和特点,我们从零开始,一步一步地将XXL-JOB接入到自己的项目中。通过XXL-JOB,我们可以更加灵活、高效地管理和调度任务,提高系统的任务处理能力和稳定性。

💧希望本文能够帮助你理解和使用XXL-JOB,预祝任务调度之路越来越顺利!


在这里插入图片描述


🐳结语

🐬初学一门技术时,总有些许的疑惑,别怕,它们是我们学习路上的点点繁星,帮助我们不断成长。

🐟积少成多,滴水成河。文章粗浅,希望对大家有帮助!

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

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

相关文章

在.net 6.0中 调用远程服务器web服务,Webservices(xxx.asmx) ,RESTful 风格,2种解决方案。

1.使用 Connected Services&#xff1a; 右键单击您的项目&#xff0c;选择 "Add"&#xff08;添加&#xff09;-> "Connected Services"&#xff08;已连接的服务&#xff09;。 在 "Connected Services" 对话框中&#xff0c;选择 "W…

如何用 Apache DolphinScheduler 实现自动配置自定义变量?

作者 | sqlboy-yuzhenc 背景介绍 在实际工作应用中&#xff0c;我们可能需要在整个 Apache DolphinScheduler 层面定义共用的日期变量&#xff0c;但是&#xff0c;开源版 Apache DolphinScheduler 只允许配置工作流级别的全局变量&#xff0c;这样&#xff0c;每个工作流就得…

机器学习笔记之优化算法(九)收敛速度的简单认识

机器学习笔记之优化算法——收敛速度的简单认识 引言收敛速度的判别标准 Q \mathcal Q Q-收敛速度 R \mathcal R R-收敛速度关于算法复杂度与收敛速度 引言 本节对收敛速度简单介绍。 收敛速度的判别标准 我们之前几节介绍了线搜索方法 ( Line Search Method ) (\text{Line …

无人驾驶实战-第四课(动态环境感知与2D检测算法)

无人驾驶中的检测框架 2D目标检测的思路 位置&#xff1a;先找到所有的ROI (Region of Interest, bounding box may containing object)类别&#xff1a;对每一个ROI做分类获取类别信息 位置修正&#xff1a;Bounding box Regression 找寻ROI的方法 1.滑窗法。从左到右&#xf…

Ansys Zemax | 大功率激光系统的 STOP 分析 (三)

大功率激光器广泛用于各种领域当中&#xff0c;例如激光切割、焊接、钻孔等应用中。由于镜头材料的体吸收或表面膜层带来的吸收效应&#xff0c;将导致在光学系统中由于激光能量吸收所产生的影响也显而易见&#xff0c;大功率激光器系统带来的激光能量加热会降低此类光学系统的…

Java中的内存划分,一个数组的内存图,两个数组的内存图,两个引用指向同一个数组的内存图

1、Java中的内存划分 Java的内存需要分成5个部分&#xff1a; 栈&#xff08;Stack&#xff09; 存放的都是 方法 中的 局部变量 。方法的运行一定要在栈当中运行。 局部变量&#xff1a;方法的参数&#xff0c;或者是方法{}内部的变量 作用域&#xff1a;一旦超出作用域&#…

ubuntu调整路由顺序

Ubuntu系统跳转路由顺序 1、安装ifmetric sudo apt install ifmetric2、查看路由 route -n3、把Iface下面的eth1调到第一位 sudo ifmetric eth1 0命令中eth1是网卡的名称&#xff0c;更改网卡eth1的跃点数&#xff08;metric值&#xff09;为0&#xff08;数值越小&#xf…

存放数据的方式:Java集合框架

文章目录 1. 目前存放数据的方式2. Java集合框架3. Collection接口常用方法解析public boolean add(E e)public void clear()public boolean remove(E e)public boolean contains(E e)public boolean isEmpty()public int size()public Object[] toArray() 4. 迭代器5. 增强for…

从零基础开始开发自己的第一个微信小程序

文章目录 内容介绍小程序开发步骤注册微信小程序账号下载开发工具搭建开发环境创建工程编写代码手机上查看效果 工程里的文件作用介绍总结 内容介绍 通过本篇blog&#xff0c;你可以熟悉从零开始&#xff0c;搭建小程序开发环境&#xff0c;并运行起自己的第一个小程序。 小程…

Stability AI旗舰图像模型 SDXL1.0发布,AI绘画进入新的时代

Stability AI于7月26号开源了SDXL1.0文生图模型&#xff0c;要知道距离SDXL0.9开源发布也不过一个月,只能说AI发展日新月异。 根据官网介绍&#xff0c;SDXL1.0经过迭代更新&#xff0c;已经是目前世界上最好的图像生成模型 官网根据Discord上的几代实验模型和外部测试&#…

股票量价关系分析

量增价平 量增价平是指成交量增加&#xff0c;股价保持相对平稳的量价关系模型&#xff0c;量的增加可以是资金大量流入引起&#xff0c;也可以是资金大量流出引起&#xff0c;因此这种关系模型需要根据股价所处的位置来具体分析。1、股价处于低位 当股价处于低位&#xff0c;此…

Unity之webgl端通过vue3接入腾讯云联络中心SDK

腾讯云联络中心SDK:云联络中心 Web-SDK 开发指南-文档中心-腾讯云 (tencent.com) 1 首先下载Demo ​ 1.1 对其进行解压 ​ 1.2根据文档操作 查看README.md,根据说明设置server下的dev.js里的相关参数。 然后打开电脑终端&#xff0c;cd到项目的路径&#xff1a; ​ 安装…

喜报 | 《中国AIOps现状调查报告(2023)》发布!擎创科技案例再度入选

&#xff08;本文部分内容来自《中国AIOps现状调查报告&#xff08;2023&#xff09;》&#xff0c;丝小编扣1&#xff0c;领取完整版报告&#xff09; 2023年7月18日&#xff0c;信通院Xops产业创新发展论坛于北京成功举办。大会旨在提高企业研发运营水平&#xff0c;加强XOp…

243. 一个简单的整数问题2(树状数组)

输入样例&#xff1a; 10 5 1 2 3 4 5 6 7 8 9 10 Q 4 4 Q 1 10 Q 2 4 C 3 6 3 Q 2 4输出样例&#xff1a; 4 55 9 15 解析&#xff1a; 一般树状数组都是单点修改、区间查询或者单点查询、区间修改。这道题都是区间操作。 1. 区间修改用数组数组维护差分数组 2. 区间查询&am…

实现弧形切角两种方式

1、css 的 radial-gradient <view style"padding:30px; background: #ccc;"><view class"navActive"></view> </view>.navActive{width: 200px;height: 40px;background-color: #fff;color: rgb(0,63,136);position: relative;bor…

windows环境下安装elasticsearch、kibana

通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候&#xff0c;要非常小心&#xff0c;因为100等于100、但是200不等于200&#xff0c;当然&#xff0c;如果你会一点小花招&#xff0c;也可以让100不等于100、让200等于200。(运算符比较…

优化供应链和库存管理:PDM系统的物料控制之道

在现代制造业中&#xff0c;优化供应链和库存管理是企业实现高效运营和降低成本的重要目标。PDM系统作为一款强大的数字化工具&#xff0c;扮演着物料控制之道的角色&#xff0c;帮助企业实现优化供应链和库存管理的目标。让我们一同深入探讨&#xff0c;看看PDM系统是如何通过…

git clone 登录 github

git clone 登录 github 目录概述需求&#xff1a; 设计思路实现思路分析1.github 设置setting2.输入passwd 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result…

mac切换jdk版本

查询mac已有版本 1、打开终端&#xff0c;输入&#xff1a; /usr/libexec/java_home -V注意&#xff1a;输入命令参数区分大小写(必须是-V) 2.目前本地装有两个版本的jdk xxxxedydeMacBook-Pro-9 ~ % /usr/libexec/java_home -V Matching Java Virtual Machines (2):20.0.1 (…

Cocos Creator不规则按钮

实现该功能需要用到组件PolygonCollider2D&#xff0c;官方链接&#xff1a; https://docs.cocos.com/creator/3.4/manual/zh/physics-2d/physics-2d-collider.html 创建组件 创建一个精灵节点&#xff1a; 创建碰撞组件PolygonColider2D&#xff0c;如图 给按钮添加多边形碰…