SpringBoot结合XXL-JOB实现定时任务

前言

篇将介绍 xxl-job 这个定时任务框架。

Quartz的不足

Quartz 的不足:Quartz 作为开源任务调度中的佼佼者,是任务调度的首选。但是在集群环境中,Quartz采用API的方式对任务进行管理,这样存在以下问题:

  • 通过调用API的方式操作任务,不人性化。
  • 需要持久化业务的 QuartzJobBean 到底层数据表中,系统侵入性相当严重。
  • 调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务。

Xxl-job介绍

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

通俗来讲:XXL-JOB 是一个任务调度框架,通过引入 XXL-JOB 相关的依赖,按照相关格式撰写代码后,可在其可视化界面进行任务的启动执行中止以及包含了日志记录与查询任务状态监控

更多详细介绍推荐阅读官方文档。

项目实践

Spring Boot集成XXL-JOB

Spring Boot 集成 XXL-JOB 主要分为以下两步:

  1. 配置运行调度中心(xxl-job-admin)
  2. 配置运行执行器项目

xxl-job-admin 可以从源码仓库中下载代码,代码地址有两个:

  1. GitHub: github.com/xuxueli/xxl…
  2. Gitee: gitee.com/xuxueli0323…

下载完之后,在 doc/db 目录下有数据库脚本 tables_xxl_job.sql,执行下脚本初始化调度数据库 xxl_job,如下图所示:

配置调度中心

将下载的源码解压,用 IDEA 打开,我们需要修改一下 xxl-job-admin 中的一些配置。(我这里下载的是最新版 2.3.1)

1、修改 application.properties,主要是配置一下 datasource 以及 email,其他不需要改变。

### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


### xxl-job, email
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=1739468244@qq.com
spring.mail.from=1739468244@qq.com
# 此处不是邮箱登录密码,而是开启SMTP服务后的授权码
spring.mail.password=xxxxx
复制代码

2、修改 logback.xml,配置日志输出路径,我是在解压的 xxl-job-2.3.1 项目包中新建了一个 logs 文件夹。

<property name="log.path" value="/Users/xxx/xxl-job-2.3.1/logs/xxl-job-admin.log"/>
复制代码

然后启动项目,正常启动后,访问地址为: http://localhost:8080/xxl-job-admin,默认的账户为 admin,密码为 123456,访问后台管理系统后台。

这样就表示调度中心已经搞定了,下一步就是创建执行器项目。

创建执行器项目

本项目与 Quartz 项目用的业务表和业务逻辑都一样,所以引入的依赖会比较多。

环境配置

1、引入依赖:

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.6.3</version>
  <relativePath/>
</parent>

<properties>
  <java.version>1.8</java.version>
  <fastjson.version>1.2.73</fastjson.version>
  <hutool.version>5.5.1</hutool.version>
  <mysql.version>8.0.19</mysql.version>
  <org.mapstruct.version>1.4.2.Final</org.mapstruct.version>
  <org.projectlombok.version>1.18.20</org.projectlombok.version>
  <druid.version>1.1.18</druid.version>
  <springdoc.version>1.6.9</springdoc.version>
</properties>

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-w
最低0.47元/天 解锁文章
小满只想睡觉
关注 关注
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xxl-job任务管理平台的配置与使用
qq_43758209的博客
03-29 1万+
xxl-job任务管理平台的配置 #是否启用job executor,如果设置为false,则不初始化 job.executor.enable=true #web port server.port=8083 ##调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。 >## 执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册; xxl.job.executor.adminAddresses=http://127.0.0.1:8083/xxl-job-
springboot使用xxl-job(注册执行器)
08-07
xxl-job-admin后台程序,整合了nacos和openfeign。可以通过openfeign调用接口动态添加修改定时任务,前提是需要nacos
SpringBoot整合XXL-JOB项目,以及附带使用xxl-job邮件定时发送。
08-17
SpringBoot整合XXL-JOB项目,以及附带使用xxl-job邮件定时发送,一个特别好用的demo,一看就懂。企业级规范。
笔记:xxljob中的权限拦截器
weixin_44522680的博客
03-04 242
/自己定义的权限拦截器@Resource@Override//对全部的接口进行权限拦截这个注解可以用在controller层的接口上/*** 登录拦截 (默认拦截)*//*** 要求管理员权限* @return*/
SpringBoot xxl-job 任务调度
最新发布
℡メ㏑╭ァ小凯
04-23 272
首先官网下载xxl-job的源代码,然后切换到jdk8,等Maven下载依赖。执行mysql的脚本,修改连接配置,启动admin站点。再去任务管理页面,配置好这个任务对应的执行信息。先新增一个任务执行器,指向未来任务代码的站点。然后在任务执行器的站点配置任务管理的地址。再写一个任务后,启动任务站点。
分布式定时任务-XXL-JOB-教程+实战
Roker
02-03 8542
xxl-job确实很强大,功能也很全,经过该文章学习相信你可以把xxl-job给用起来了,但是如果你的项目是一个小体量的单体,我不太建议使用它,Quzrtz或者SpringBoot Task就足够 ,对于xxl-job个人还是有些笨重。
xxl-job定时任务
m0_49790240的博客
01-27 1万+
xxl-job定时任务的一点分享
xxjob分布式定时任务简单入门和改造
热门推荐
u010772230的专栏
03-07 1万+
xxjob简单入门和改造 xxjob简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 xxjob官网下载地址 https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B xxjob下
SpringBoot集成xxl-job分布式定时任务
大猩猩的博客
01-05 2331
SpringBoot集成xxl-job分布式定时任务
springboot集成xxl-job #资源达人分享计划#
08-05
这是springboot集成xxl-job案例,适合对分布定时任务感兴趣的开发者
xxl-job集成springboot实战代码
01-17
xxl-job集成springboot实战,xxl-job定时任务详解 博客地址:https://blog.csdn.net/qq_38105536/article/details/122544713
xxl-job.rar
08-26
最新的xuxueli0323-xxl-job-master.zip 资源,已测试非常好用。
分布式任务调度平台XXL-JOB应用.docx
05-20
springboot 接入分布式任务调度平台XXL-JOB应用
XXL-JOB分布式定时任务
qq_66986418的博客
03-13 557
xxl-job分布式定时任务分为两个部分:调度中心和执行器;调度中心通过Web页面对任务进行CRUD操作,统一管理任务调度平台上调度任务,负责触发调度执行。执行器是要处理的任务下面看一下怎么使用xxl-job分布式定时任务
Springboot——集成Elastic Job实现任务调度
tang_seven的博客
05-08 2254
Sprngboot集成elatic job,进行分布式任务调度(分布式架构下的定时任务
xxl-job的使用
m0_59859828的博客
09-06 192
​ 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;​ 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;​ 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。​ 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
xxl-job 的 API 接口添加任务的 Java 源代码
亿辰空间
03-18 1863
xxl-job 的 API 接口添加任务的 Java 源代码
XXL-JOB逻辑自测及执行参数配置踩坑
lonelymanontheway的博客
11-24 5394
XXL-JOB平台执行参数配置踩坑; XXL-JOB平台调度执行本地代码,实现本地代码自测; MySQL时间datetime类型参数为空时查询问题;
SpringBoot 结合 XXL-JOB 实现定时任务
程序员高级码农的博客
12-26 886
上篇文章我们介绍了 Quartz 的使用,当时实现了两个简单的需求,不过最后我们总结的时候也提到 Quartz 有不少缺点,代码侵入太严重,所以本篇将介绍 xxl-job 这个定时任务框架。通俗来讲:XXL-JOB 是一个任务调度框架,通过引入 XXL-JOB 相关的依赖,按照相关格式撰写代码后,可在其可视化界面进行任务的启动,执行,中止以及包含了日志记录与查询和任务状态监控。所以我们需要修改一下。通过对比 Quartz 和 XXL-JOB 的使用,可以发现后者更易上手,代码侵入不严重,且具备可视化界面。
springboot 整合 xxl-job
09-05
SpringBoot可以很方便地与XXL-JOB进行整合,实现任务调度和定时任务的功能。你可以仿照com.xxl.job.executor.service.jobhandler.SampleXxlJob类的实现,在你的Spring Boot项目中定义一个类,并使用@XxlJob注解来标记你的任务处理方法。在这个方法中,你可以编写你的任务逻辑代码。同时,你可以通过XxlJobHelper.log方法打印执行日志,并通过XxlJobHelper.handleFail和XxlJobHelper.handleSuccess方法来自主设置任务结果。 为了使用XXL-JOB,你需要启动xl-job-admin服务。首先,你需要创建数据库并执行相应的SQL文件。然后,修改yml配置文件,配置好数据库连接等信息。最后,启动xl-job-admin服务,通过访问http://127.0.0.1:8080/xxl-job-admin/并使用admin/123456登录,如果能看到相应的界面则说明配置成功。接着,你可以根据xxl-job-executor-sample-springboot项目模仿,创建一个自己的Spring Boot服务进行开发。 整合完成后,你的Spring Boot项目就可以使用XXL-JOB进行任务调度和定时任务的管理了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot整合XXL-JOB项目,以及附带使用xxl-job邮件定时发送。](https://download.csdn.net/download/qq_42217363/86402558)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [springboot整合xxl-job](https://blog.csdn.net/qq_32419139/article/details/131187884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 最经典的20个Spring Boot面试题,95%以上会被问到,不服来战 31781
  • 三分钟带你了解ES【详解版】 12196
  • GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」 11994
  • 跨平台桌面应用的开发框架——Electron 8746
  • 偷偷告诉你Linux 修改系统时间的两种方式 8574

最新评论

  • 阿里内部传疯了的企业级 Spring Boot 项目开发实战教程,我先收藏了

    天蓝999: 可以的,我看的另一个SpringBoot视频,从零开发,十天掌握了项目实战:https://knife.blog.csdn.net/article/details/134911141

  • 最经典的20个Spring Boot面试题,95%以上会被问到,不服来战

    冬天vs不冷: 文章构思巧妙,结构紧凑,既有深度又有广度,读后让人受益匪浅,确实是一篇值得一读的佳作,期盼博主能够光顾我的博客,给予宝贵的指导!

  • 2023 最新首发!全网最全 Spring Boot 学习宝典(附实战项目教程)

    天蓝999: 可以的,我看的另一个SpringBoot视频,从零开发,十天掌握了项目实战:https://knife.blog.csdn.net/article/details/134911141

  • 详解Xss 及SpringBoot 防范Xss攻击(附全部代码)

    weixin_43843200: testssss\"><img src=xxxx onerror=alert(/xss0416/) /><bad=\

  • 详解Xss 及SpringBoot 防范Xss攻击(附全部代码)

    weixin_43843200: testssss\"><img src=xxxx onerror=alert(/xss0416/) /><bad=\

大家在看

  • IDEA SpringBoot整合Mybatis(保姆级教程,超详细!!!)
  • 2786. 访问数组中的位置使分数最大(Rust记忆化搜索)
  • (已校对)移动Web前端高效开发实战:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js (iKcamp)
  • btstack协议栈实战篇--GATT Client - Discover Primary Services 267
  • 设计模式-六大原则

最新文章

  • 牛客网 2023Java 最新面试宝典(附答案解析)首次开源
  • 2023最新「阿里」Java 高级工程师面试高频题:JVM+Redis+ 并发 + 算法 + 框架
  • BAT 面试题汇总:分布式 +Dubbo +JVM+ 微服务 + 多线程 +Spring 附答案
2023年502篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

聚圣源笔画五行起名男孩子起名生辰生辰八字起名猪宝宝起名宜搞笑一家人韩剧贵族天使之恋韩国女装店铺取名起名大全蓝狐影视尾字起名宠物狗起名字什么好听小饭店起店名大全迪迦奥特曼56起名字英语免费起名网网络公司名字起名大全二手房中介公司起名大众网球装修起那些名字好wds无线桥接公司起名鑫配什么字好宝宝起名大全攻略dx9.0cctv1新闻在线直播十万火急电影孩子取名起名大全测试万象破解带财的起名有哪些青春期2男孩起名沛政治理论学习心得体会三才五格起名法淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化