SpringBoot集成Xxl-job

xxl-job架构篇 - 初识分布式任务调度xxl-job 本文介绍XXL-JOB的相关知识。 阅读详情
AI摘要

本文介绍了Xxl-job,一个分布式任务调度平台,其易于使用、扩展,支持多种开发语言。通过配置和示例展示了如何在Spring应用中集成Xxl-job,以及与quartz框架的对比。

前言

  1. 在开发过程中,会遇到需求要求定时定点的产生一些报表数据或者操作,把这一类行为统称为定时任务,实现定时任务的方式有spring注解(@Scheduled)、quartz框架以及今天要介绍的Xxl-job。

一. 什么是Xxl-job?

官网介绍:XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。
现已开放源代码并接入多家公司线上产品线,开箱即用。

官方文档:文档
项目地址:传送门

二.Xxl-job简单使用

  1. 下载源码,更改配置文件信息,仅需要修改数据库配置即可。
  2. 启动项目后访问:http://localhost:8080/xxl-job-admin/toLogin,用户名:admin,密码:123456。登录成功后的项目首页: ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=!%5Bhttps%3A%2F%2Fimg-home.csdnimg.cn%2Fimages%2F20220524100510.png%5D(https%3A%2F%2Fimg-blog.csdnimg.cn%2Fdirect%2F857fb0fa28b44cf1b4c6641d4312d85c.png&pos_id=img-QV4qOjYz0220524100510.pnpic_center
    2.新建测试项目
    引入Xxl-job核心依赖
   <dependency>
           <groupId>com.xuxueli</groupId>
           <artifactId>xxl-job-core</artifactId>
           <version>2.3.1</version>
       </dependency>

配置文件


server.port=8002
#日志配置文件
logging.config=classpath:logback.xml
# xxl-job任务配置中心地址,支持集群模式,多个地址用逗号隔开
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

# 调度中心通讯TOKEN,这里使用默认即可
xxl.job.accessToken=default_token

xxl.job.executor.appname=xxl-job-executor-sample
# 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
xxl.job.executor.address=
# 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=192.168.1.10
# 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9998
# 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
# 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
xxl.job.executor.logretentiondays=30

新建测试方法。在方法上面加入注解(@XxlJob( “fristJob”))

    @XxlJob( "fristJob")
    public String sendMsg(){
        logger.info("我是服务:{},正在执行发送短信方法",appName);
        logger.info(XxlJobHelper.getJobParam());
        return "短信发送成功";
    }
      @XxlJob("sencodJob")
    public String sendEmail() throws InterruptedException {
        logger.info("我是服务:{},正在执行发送邮件方法",appName);
        TimeUnit.SECONDS.sleep(5);
        return "邮件发送成功";

    }

配置任务
在这里插入图片描述
执行器:默认就行
描述:随便填
负责人:写自己
报警邮箱:需要进行邮箱配置,这里使用qq邮箱测试,当任务执行报错失败时会有邮件通知

spring.mail.host=smtp.qq.com#邮箱服务器
spring.mail.port=465#端口
spring.mail.username=邮箱
spring.mail.from=邮箱
spring.mail.password=授权密码,不是邮箱登录密码,不知道的查一下教程
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

在这里插入图片描述
调度类型:支持cron表达式和固定频率执行(频率默认s)
运行模式:支持java代码、cmd命令、shelle脚本等,本次使用BEAN。
JobHandler:任务执行器名称
任务参数:字符串,方法中使用XxlJobHelper.getJobParam()获取参数内容。
路由策略:支持轮训、顺序第一个或者最后一个、还支持HASH等等规则。这里测试一下轮询。修改当前项目的启动参数,模拟集群环境。
在这里插入图片描述
将路由策略改为轮询
在这里插入图片描述
在这里插入图片描述
子任务id:这里指的是任务列表上的id。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
任务超时时间:默认单位s,当执行任务超过设定时间会失败,并且会根据重试次数进行重新调用。利用日志查看结果
在这里插入图片描述
重试次数改为2,点击执行一次。在方法中设定超时。发现日志有三条数据。
在这里插入图片描述

总结

  1. 与quartz相比,xxl-job支持多种开发语言,提供了可视化管理界面,由于xxl-job有服务端和客户端之分,使用起来在一定程度上使得代码的耦合性没那么高,对代码侵害低。是一个非常不错的任务调度框架,关键还是开源的。
  2. 本次对xxl-job进行简单的使用和了解,xxl-job还提供了docker镜像部署,感兴趣的可以了解一下。还有很多的用法没有探索和介绍,欢迎感兴趣的同学留言发表意见。
分布式任务调度平台 xxl-job 搭建 阅读详情

相关推荐

Springboot 集成xxl-job实现定时调度任务

一、前言 因为自己开发的系统中需要使用到定时调度的情境,所以结合自己使用的Springboot项目框架,准备接入xxl-job定时调度平台。 二、准备 1.先从xuxueli的GitHub上将xxl-job的源代码克隆一份到本地。 具体链接为https://github.com/xuxueli/xxl-job git clone https://github.com/xuxueli/xxl-job...

linkk 7137

xxl-job(三)带参数执行和高可用部署

一、job获取参数:xxl-job通过以下方式获取参数: String param = XxlJobHelper.getJobParam(); 1、单参数: package com.job.client.jobhandle; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob

w_t_y_y的博客 2万+

xxl-job 集成 SpringBoot 使用

xxl-job 集成 SpringBoot 使用

杨杨杨~~的博客 2114

xxl-job动态传递参数

xxl-job

进行中 9144

SpringBoot集成XXL-Job

SpringBoot--xxl-Job

Michesl的博客 1003

SpringBoot 集成 xxl-job 实现定时任务管理

XXL-Job是一个功能强大的分布式任务调度框架,集成了Spring Boot后能够发挥更大的优势。它提供了分布式任务调度、任务执行报告、任务调度中心、良好的扩展性、分布式集群部署、监控与报警等多种优势。此外,XXL-Job是开源免费的,可以在GitHub上获取源代码和详细文档。详细的文档和使用指南可以在XXL-Job的官方文档中找到。

Java老兵的后端进阶与AI前沿探索之路。 4291

SpringBoot中集成Xxl-Job

针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;1、在自己的Springboot项目的maven中引入“xxl-job-core”依赖。如此,在自己项目中集成xxl-job就成功了,自己可以根据项目需求做任务调度功能模块了。6、最后在xxl-job任务调度中心配置 执行器管理 + 任务管理。* 2、配置文件,或者容器启动变量。3、编写配置类,类中的属性跟yml文件的配置一一对应。

m0_63511599的博客 1170

SpringBoot(37) 整合 XXL-JOB

SpringBoot(37) 整合 XXL-JOB

xxl-job项目集成到springBoot

源码:http://www.xuxueli.com/xxl-job/#/?id=%E4%B8%80%E3%80%81%E7%AE%80%E4%BB%8B 一初始化数据库 脚本位置/xxl-job/doc/db/tables_xxl_job.sql xxl-job-admin:调度中心 xxl-job-core:公共依赖 二.配置调度中心项目 调度中心项目:xxl-job-admin ...

zjz_i的博客 1万+

c++ mysql_init 返回无效指针_C++操作MYSQL遇到的一些问题

首先 我使用的是 vcpkg上面是我装的一些库《大大安利vcpkg 安装时一定要使用powershell进行编译装上vcpkg后装ligmariadb这个库,这个对Mysql操作还是挺方便的,然后说一下 在装库时碰到的一些问题1.网络问题1.参考了一下 github上的答案 将下载失败的url拷下来 自己下 然后再重新开始安装《vcpkg在安装时每一个需要下载的 都会提供url-仔细找,2.这个问...

weixin_32176627的博客 680

使用 STM32F7 和 TensorFlow Lite 开发低功耗人脸识别设备

我们讨论了 STM32F7 的特点和能力,TensorFlow Lite 在 STM32F7 上的应用,以及一些降低功耗的优化技术。- 准备模型:选择合适的人脸识别模型,在 TensorFlow 中进行训练和导出,并使用 TensorFlow Lite 转换为适用于 STM32F7 的量化模型。请注意,上述代码仅展示了如何加载和运行 TensorFlow Lite 模型的方法,实际应用中需要集成人脸检测和识别模型,并根据实际需求进行相应的输入和输出处理。结合这两个工具,我们可以开发出低功耗的人脸识别设备。

weixin_66608063的博客 2586

Spring boot集成xxl-job以及动态任务配置

Spring boot 集成xxl-job, xxl-job动态任务实现

TimeZRO的博客 2968

从URDF到Gazebo:一个完整的ROS2机械臂仿真与运动控制实战指南

本文提供了一个完整的ROS2机械臂仿真与运动控制实战指南。详细讲解了从URDF建模、ROS2 Control配置到Gazebo物理仿真的全流程,重点介绍了如何利用MoveIt2快速搭建高级运动规划系统,并解决实际部署中的常见问题,帮助开发者高效、安全地进行机器人算法验证与开发。

red88的博客 573

SpringBoot集成Xxl-Job

spring boot、xxl-job

彼岸的博客 2837

告别虚拟机!在WSL2的Ubuntu里5分钟跑通LVGL v9.2图形界面(附SDL2配置避坑)

本文详细介绍了如何在WSL2的Ubuntu子系统中快速配置LVGL v9.2图形库的SDL2模拟环境,帮助嵌入式开发者在5分钟内跑通第一个图形界面示例。通过WSL2和VSCode的远程开发插件,实现Windows系统下无缝使用Linux工具链,大幅提升开发效率。

weixin_28736335的博客 425

JMeter压力测试全攻略:从入门到精通

本文系统讲解JMeter压力测试的完整流程与结果评估方法。开篇介绍压力测试的核心概念及JMeter工具特性,随后从环境搭建入手,详细说明JDK配置、JMeter安装及中文界面设置。主体部分围绕测试流程展开,涵盖测试计划创建、线程组参数调优、HTTP请求配置、断言与监听器添加等实操步骤;结果评估环节深入解析聚合报告指标、结果树分析及性能瓶颈定位方法,并通过电商接口测试案例演示全流程应用。文末总结关键要点,为读者提供从基础操作到分布式压测、性能调优的进阶学习方向,助力掌握JMeter在系统性能评估中的核心应用。

邓邓子的博客 2414

springboot集成xxl-job

一、服务端安装 1、到官网https://www.xuxueli.com/xxl-job,通过git拉取代码到本地 2、找到doc目录下,db目录下的脚本文件,在数据库中建库建表 3、

weixin_43470118的博客 2592

BES2700的PMU

BES2700ZP-BES2700芯片的PMU架构分析摘要:本文档分析了BES2700芯片的电源管理单元(PMU)架构。实际应用中仅需为VBAT引脚供电,其余电源均由芯片内部PMU提供。文档包含架构示意图、问题列表和参考链接,涉及PMU工作原理、外部供电要求等关键技术点。待解决问题包括具体供电参数和内部电源转换机制等。通过添加日志信息和代码片段,为开发人员提供了调试PMU功能的实用方法。

云淡风轻 117

Spring Boot 集成 XXL-JOB

执行器:xxl-job-executor-sample-springboot,可直接使用或者将此模块与业务代码整合;调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码;模仿官方的例子:xxl-job-executor-sample-springboot。新建任务完成之后,立即执行一次,查看任务执行情况,查看返回结果,至此所有的配置结束;至此,调度中心(xxl-job-admin)部署完成。作用:负责接收,调度中心,的调度并执行任务逻辑;

每一个不曾起舞的日子,都是对生命的辜负 2233

EM的理论与实践(基础篇)

EM理论与实践

m0_61544122的博客 2378

保边滤波之Mean shift filter

保边滤波之Mean shift filter 目录 保边滤波之Mean shift filter 一、算法原理 二、练手实现的算法代码如下: 三、实现结果 一、算法原理 在OpenCV中,meanshift filter函数为 p...

大熊 1561

xxl-job集成SpringBoot

安装xxl-job客户端一般有很多方式,我这里给大家提供两种安装方式,包含里面的各项配置等等。前期需要准备好MySQL数据库。复制SQL到数据库里面。

qq_38935605的博客 1036

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【xxl-job】SpringBoot零基础集成xxl-job

`XXL-JOB`是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 `xxl-job`主要分成两部分: - 一部分是`xxl-job-admin`。这是管理控制台,简单理解就是用于管理和调度任务。 - 另一部分是`xxl-job-core`。这主要是帮助开发人员更高效的开发具体的任务,然后与调度中心交互,完成具体任务的执行操作。

Java技术栈,分享不断学习、不断超越、不断积累的历程! 2796

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SpringBoot 集成 XXL-JOB

本文详细介绍了如何在Spring Boot项目中集成XXL-JOB分布式任务调度框架。内容包括:XXL-JOB管理端部署、Spring Boot项目依赖配置、核心配置项说明、完整源码示例(含pom.xml、application.yml、Executor配置类和示例Job),以及常见用法如简单任务、分片任务和失败重试。文章还提供了部署运维建议、常见问题排查思路和最佳实践,帮助开发者快速实现定时任务调度功能。通过注解方式定义JobHandler,可轻松实现业务逻辑与调度逻辑的解耦。

勤劳的小琪 1047

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

xxl-job服务搭建,以及 springboot 集成xxl-job 项目完整步骤示例

通过以上步骤,您可以快速搭建 XXL-JOB 分布式任务调度系统,并在 SpringBoot 项目中无缝集成。XXL-JOB 是一个轻量级的分布式任务调度平台,支持可视化的任务管理、执行和监控。访问地址:http://localhost:8080/xxl-job-admin。的详细步骤(基于最新稳定版 XXL-JOB 2.3.0)。默认账号密码:admin / 123456。

bsklhao的博客 1477

SpringBoot 项目集成 xxl-job

SpringBoot 项目集成 xxl-job

韶君的博客 1158
上一篇: ThreadLocal的简单使用
下一篇: SpringBoot集成Mybatis多数据源实现分表分库
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值