运维.售后
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
博客
Blog
ToB门户
了解全球最新的ToB事件
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
springboot整合xxl-job分布式定时任务【图文完整版】 ...
springboot整合xxl-job分布式定时任务【图文完整版】
锦通
金牌会员
|
2022-9-16 17:14:27
|
显示全部楼层
|
阅读模式
楼主
主题
913
|
帖子
913
|
积分
2739
一、前言
定时任务有很多种,有一些大的框架也有一些简单的实现。
比如常见的:
JDK的Timer和TimerTask
Quartz异步任务调度框架
分布式定时任务XXL-JOB
Spring Task注解@Scheduled
小编也就知道这些,欢迎大佬补充哈!!
今天小编就以现在比较火的分布式定时任务xxl-job,优点比较轻量级,但是从21年到现在没有比较大的更新!
现在最新的好像是2.4.0。
二、xxl-job介绍
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
它是美团大佬:许雪里开发出来的!
本篇以实践教学为主,介绍大家感兴趣可以去官方文档去看看!
xxl-job文档
总体架构图:
大家自行拉去最新代码即可:
项目地址
三、修改配置
1. 运行sql文件
导出到本地数据库:
XXL-JOB调度模块基于自研调度组件并支持集群部署,调度数据库表说明如下:
xxl_job_lock:任务调度锁表;
xxl_job_group:执行器信息表,维护任务执行器信息;
xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;
xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等等;
xxl_job_log_report:调度日志报表:用户存储XXL-JOB任务调度日志的报表,调度中心报表功能页面会用到;
xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
xxl_job_user:系统用户表;
2. 修改xxl-job-admin配置
小编修改了一下端口号:
server.port=8087
复制代码
记得调整成自己的数据库密码:
spring.datasource.password=root
复制代码
由于sql文件导入的直接是个数据库,不需要我们在调整数据库的名称!
3. 需修改xxl-job-executor-sample-springboot配置
小编这里修改了端口号:
server.port=8086
复制代码
第11行:修改为admin的端口
xxl.job.admin.addresses=http://127.0.0.1:8087/xxl-job-admin
复制代码
第22行:小编9999端口被占用,修改了一下端口
xxl.job.executor.port=9998
复制代码
4. 添加自己的定时任务
@XxlJob("testJobHandler")
public void testJobHandler() throws Exception {
for (int i = 0; i < 5; i++) {
XxlJobHelper.log("这是第" + i + 1 + "条日志!");
System.out.println("这是第" + i + 1 + "次看到我了!");
}
System.out.println("定时任务结束!!");
}
复制代码
四、运行项目
1. 启动项目
2. 登录
根据上一步的配置,我们直接端口号加服务名字进行访问:
http://localhost:8087/xxl-job-admin/
账号:admin
密码:123456
3. xxl-job的好处
自己写完的定时任务,可以交给这个管理,这样什么时候运行,定时任务的执行规则,都可以在可视化的界面进行管理和操作,更加的人性化!可以动态的修改cron表达式,还有日志执行情况,这是真的香啊!!
4. 查看执行器获取网址
默认已经把springboot整合上来了,如果大家是自己新建的模块可以新增一条,让管理器管理咱们自己项目的定时任务,也就是使用@XxlJob的任务!
5. 新增任务管理
这里比较智能,一些基本的cron表达式都可以帮你写,非常的人性!!
JobHandler:填@XxlJob里面的名字即可,小编这里是:@XxlJob("testJobHandler"),所以是testJobHandler
6. 执行任务
我们这次执行一次,看看控制台是否打印记录,看看我们写的任务是否执行了!!
任务参数随便输入,机器地址为:http://192.168.1.207:9998/,第4步查看的,也就是管理端的地址加端口!!
7. 执行成功
我们看到方法成功被执行了!!
8. 查看日志
五、总结
大家看到我的日志还是有执行失败的,原因是开始端口被占用,没有注意,一直在测试,一直失败!!
大家运行后一定看看控制台有没有报错,如果是java.net.BindException: Address already in use: bind
那就是端口号被占用,换一个就行了!!
也可以看看小编这篇文章,详细解决了这个问题!!
Address already in use: bind【已解决】
有缘人才可以看得到的哦!!!
点击访问!小编自己的网站,里面也是有很多好的文章哦!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
锦通
金牌会员
这个人很懒什么都没写!
楼主热帖
快速入手node.js
漏洞利用
医院HIS体系厂家统计
vue3 - 最新详细实现 “拖曳式课程表“ ...
奇怪,为什么ArrayList初始化容量大小 ...
如何成为一位人心所向的管理者?我的经 ...
理解MVCC
八、MySQL之事务控制语言
如何在文章中设置灰色文本框(正文底色 ...
Vue实现复制粘贴功能
标签云
存储
服务器
快速回复
返回顶部
返回列表