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

在这里插入图片描述

                               💧 分布式任务调度平台 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.mzph.cn/news/20193.shtml

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

相关文章

增强知识保护和知识管理:PDM系统的知识库特色

在现代竞争激烈的商业环境中&#xff0c;知识保护和知识管理对企业的发展至关重要。PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;作为一款强大的数字化工具&#xff0c;具备丰富的知识库特色&#xff0c;帮助企业增强知识保护和知识管理的…

《TCP IP 网络编程》第十五章

第 15 章 套接字和标准I/O 15.1 标准 I/O 的优点 标准 I/O 函数的两个优点&#xff1a; 除了使用 read 和 write 函数收发数据外&#xff0c;还能使用标准 I/O 函数收发数据。下面是标准 I/O 函数的两个优点&#xff1a; 标准 I/O 函数具有良好的移植性标准 I/O 函数可以利用…

FPGA学习——蜂鸣器实现音乐播放器并播放两只老虎

文章目录 一、蜂鸣器简介1.1 蜂鸣器分类1.2 PWM 二、C4开发板原理图三、如何产生不同的音调四、代码实现及分析五、总结 一、蜂鸣器简介 1.1 蜂鸣器分类 蜂鸣器一般分为有源蜂鸣器和无源蜂鸣器。二者的区别在于&#xff0c;有源蜂鸣器内部含有振动源和功放电路&#xff0c;只…

前端如何打开钉钉(如何唤起注册表中路径与软件路径不关联的软件)

在前端唤起本地应用时&#xff0c;我查询了资料&#xff0c;在注册表中找到腾讯视频会议的注册表情况&#xff0c;如下&#xff1a; 在前端代码中加入 window.location.href"wemeet:"; 就可以直接唤起腾讯视频会议&#xff0c;但是我无法唤起钉钉 之所以会这样&…

2023年人工智能技术与智慧城市发展白皮书

人工智能与智慧城市是当前热门的话题和概念&#xff0c;通过将人工智能技术应用在城市管理和服务中&#xff0c;利用自动化、智能化和数据化的方式提高城市运行效率和人民生活质量&#xff0c;最终实现城市发展的智慧化&#xff0c;提升城市居民的幸福感。 AI技术在城市中的应…

QT中使用ffmpeg的api进行视频的播放

在了解ffmpeg使用api进行视频的播放之前&#xff0c;我们首先了解一下视频的播放流程。 一、视频的播放流程 首先是我们最常见的视频文件&#xff0c;在播放流程中首先是要打开视频文件&#xff0c;将视频文件中的数据进行解封装&#xff0c;之后再将解封装之后的视频进行解码…

【C#学习笔记】引用类型(2)

文章目录 ObjectEqualsGetTypeToStringGetHashCode string逐字文本复合格式字符串字符串内插 StringBuilderStringBuilder 的工作原理StringBuilder提供的方法访问字符迭代字符查询字符 dynamic Object 支持 .NET 类层次结构中的所有类&#xff0c;并为派生类提供低级别服务。…

Python实现GA遗传算法优化循环神经网络分类模型(LSTM分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;最早是由美国的 John holland于20世…

全面解析大语言模型的工作原理

当ChatGPT在去年秋天推出时&#xff0c;在科技行业乃至世界范围内引起了轰动。当时&#xff0c;机器学习研究人员尝试研发了多年的语言大模型&#xff08;LLM&#xff09;&#xff0c;但普通大众并未十分关注&#xff0c;也没有意识到它们变得多强大。 如今&#xff0c;几乎每个…

无代码开发(BIP旗舰版-YonBuilder)

目录 我的应用 新建领域 菜单管理 应用构建 新建应用 对象建模 新增业务对象 新增业务实体 页面建模 新增页面 编辑页面 发布管理 我的应用 角色管理 yonbuilder开发平台&#xff0c;提供标准服务和专业开发服务&#xff1b; 本篇文章只演示标准服务的可视化应用…

Flink State 和 Fault Tolerance详解

有状态操作或者操作算子在处理DataStream的元素或者事件的时候需要存储计算的中间状态&#xff0c;这就使得状态在整个Flink的精细化计算中有着非常重要的地位&#xff1a; 记录数据从某一个过去时间点到当前时间的状态信息。以每分钟/小时/天汇总事件时&#xff0c;状态将保留…

弹性布局,网格布局,JavaScript

弹性盒子布局&#xff08;Flexbox Layout&#xff09;&#xff1a;通过display: flex;设置容器为弹性盒子&#xff0c;可以实现更复杂的自适应和响应式布局。 网格布局&#xff08;Grid Layout&#xff09;&#xff1a;通过display: grid;设置容器为网格布局&#xff0c;可以将…

Unity 引擎做残影效果——2、屏幕后处理方式

Unity实现残影效果 大家好&#xff0c;我是阿赵。 这里继续介绍Unity里面做残影的方法。之前介绍了BakeMesh的方法做残影&#xff0c;这一期介绍的是用屏幕后处理的方法做残影。 一、原理 之前的BakeMesh方法&#xff0c;是真的生成了很多个网格模型在场景里面。如果用后处理做…

day49-Springboot

Springboot 1. Springboot简介 1.1 简介&#xff1a;Springboot来简化Spring应用开发的一个框架&#xff0c;约定大于配置 1.2 优点&#xff1a; 可以快速的构建独立运行的Spring项目&#xff1b; 框架内有Servlet容器&#xff0c;无需依赖外部&#xff0c;所以不需要达成w…

正则匹配img标签里面src

正则&#xff1a; (?<src\s*\s*\")\S(?\"{1})匹配效果&#xff1a;

Ansible —— playbook 剧本

Ansible —— playbook 剧本 一、playbook的概述1.playbook简介2.什么是Ansible playbook剧本&#xff1f;3.Ansible playbook剧本的特点4.如何使用Ansible playbook剧本&#xff1f;5.playbooks 本身由以下各部分组成 二、playbook示例1.运行playbook2.定义、引用变量3.指定远…

HarmonyOS/OpenHarmony元服务开发-卡片使用动效能力

ArkTS卡片开放了使用动画效果的能力&#xff0c;支持显式动画、属性动画、组件内转场能力。需要注意的是&#xff0c;ArkTS卡片使用动画效果时具有以下限制&#xff1a; 以下示例代码实现了按钮旋转的动画效果&#xff1a; Entry Component struct AttrAnimationExample { St…

Vue axios + Vue使用

相对于原生的阿贾克斯&#xff0c;axios提供的方法使用起来会更加的简便&#xff0c;之前网络数据获取到了&#xff0c;如何和vue一起使用呢&#xff1f; 网络应用的核心就是data中的数据一部分是通过网络获取到的。所以在方法当中发起网络请求&#xff0c;在响应回来之后将服…

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 (…

【腾讯云Cloud Studio实战训练营】使用Cloud Studio迅捷开发一个3D家具个性化定制应用

目录 前言&#xff1a; 一、腾讯云 Cloud Studio介绍&#xff1a; 1、接近本地 IDE 的开发体验 2、多环境可选&#xff0c;或连接到云主机 3、随时分享预览效果 4、兼容 VSCode 插件 5、 AI代码助手 二、腾讯云Cloud Studio项目实践&#xff08;3D家具个性化定制应用&…