网站首页 > 开源技术 正文
一、前言
定时任务有很多种,有一些大的框架也有一些简单的实现。
比如常见的:
- JDK的Timer和TimerTask
- Quartz异步任务调度框架
- 分布式定时任务XXL-JOB
- Spring Task注解@Scheduled
小编也就知道这些,欢迎大佬补充哈!!
今天小编就以现在比较火的分布式定时任务xxl-job,优点比较轻量级,但是从21年到现在没有比较大的更新!
现在最新的好像是2.4.0。
二、xxl-job介绍
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
它是美团大佬:许雪里开发出来的!
本篇以实践教学为主,介绍大家感兴趣可以去官方文档去看看!
xxl-job文档:https://www.xuxueli.com/xxl-job/
总体架构图:
在这里插入图片描述
大家自行拉去最新代码即可:
项目地址:https://gitee.com/xuxueli0323/xxl-job?_from=gitee_search
三、修改配置
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
那就是端口号被占用,换一个就行了!!
也可以看看小编这篇文章,详细解决了这个问题!!
https://blog.csdn.net/qq_52423918/article/details/126155320
有缘人才可以看得到的哦!!!
https://wangzhenjun.xyz/
猜你喜欢
- 2024-09-28 Spring Boot | Spring Boot整合XXL-JOB开发定时任务
- 2024-09-28 XXL-JOB 针对未授权访问导致远程命令执行漏洞的声明
- 2024-09-28 微服务调度中心升级xxl-job及xxl-job改造(二)
- 2024-09-28 XXL-Job 适配 Postgre 数据库的完整流程
- 2024-09-28 定时任务框架选型Quartz/Xxl-Job(较大多层框架结构基础选型技术经济分析)
- 2024-09-28 记一次 xxl-job 实战(记一次运动会作文600字六年级点面结合)
- 2024-09-28 项目基础部署汇总八---linux下xxl-job安装
- 2024-09-28 SpringBoot基础教程3-1-4 xxl-job快速整合
- 2024-09-28 xxl-job v2.1.0正式发布(京办电脑版官方下载v2.1.0)
- 2024-09-28 简单易懂,分布式任务调度平台XXL-JOB快速搭建
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)