SpringBoot集成XxlJob分布式任务调度中心(超详细之手把手教学)
一、前言
废话就不多说了,介绍Xxl-Job的网上已经有很多,本文就不多加复制粘贴了,直接步入第二步。(PS:本文包括Xxl-Job分布式定时任务调度中心的搭建,以及SpringBoot集成XxlJob的全过程。如果不想了解搭建的小伙伴可以直接调到第三步。)
二、Xxl-Job分布式定时任务调度中心搭建
2.1 下载
源码地址:https://github.com/xuxueli/xxl-job
我使用的2.3.0版本的,这是目前最新的版本。
下载好后,我们使用IDEA打开,可以看到如图的几个模块:
其中xxl-job-admin是我们的后台管理系统,这也是我们主要查看xxl-job日志的地方;xxl-job-core则是核心core文件,我们项目中导入依赖就主要导入这个文件;最后是xxl-job-executor-samples这里放了各个不同版本执行器的源码。
2.2 数据库配置
打开至/xxl-job/doc/db目录下,可以看到xxl-job需要的一些数据库初始化脚本。
我们需要在我们的数据库运行一下这些sql文件,运行完成后,会产生如下的库与对应的表
2.3 修改配置文件
此处需要修改xxl-job-admin项目下的application.properties文件,主要是修改数据库相关配置:
将此处修改为自己的数据库配置即可。其他配置根据自己需要更改。顺带一句,笔者此处还将端口8080改为了9080。
2.4 启动项目
此时我们准备工作已经做完,直接启动XxlJobAdminApplication项目即可。
注意:此处启动如果是Mac的用户可能会报错,错误信息如:
这里只需要将xxl-job/xxl-job-admin/src/main/resources目录下的logback.xml文件中的
<property name="log.path" value="/data/applogs/xxl-job/xxl-job-admin.log"/>
修改为:
<property name="log.path" value="./data/applogs/xxl-job/xxl-job-admin.log"/>
即可。
2.5 访问
在浏览器输入:http://127.0.0.1:9080/xxl-job-admin 即可成功访问。
用户密码分别为:admin/123456
登陆成功后可以看到此页面即为搭建成功。
三、SpringBoot集成Xxl-Job
3.1 导入依赖
<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>${xxl-job.version}</version></dependency>
3.2 添加配置文件
xxl:job:admin:# xxl-job后台管理界面的地址addresses: http://127.0.0.1:8080/xxl-job-adminexecutor:# 此执行器的名称appname: first-study# 此执行器的端口port: 38801# 此执行器的日志存放路径logpath: logs/xxl-job/first-study# 此执行器的日志保存时间logretentiondays: 7
3.3 添加配置类
XxlJobProperties:
@Configuration
@Data
public class XxlJobProperties {@Value("${xxl.job.admin.addresses}")private String adminAddresses;// @Value("${xxl.job.accessToken}")
// private String accessToken;@Value("${xxl.job.executor.appname}")private String appname;// @Value("${xxl.job.executor.address}")
// private String address;// @Value("${xxl.job.executor.ip}")
// private String ip;@Value("${xxl.job.executor.port}")private int port;@Value("${xxl.job.executor.logpath}")private String logPath;@Value("${xxl.job.executor.logretentiondays}")private int logRetentionDays;
}
BeanConfig:
@Configuration
@RequiredArgsConstructor
public class BeanConfig {private final XxlJobProperties xxlJobProperties;@Beanpublic XxlJobSpringExecutor xxlJobExecutor() {XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdminAddresses());xxlJobSpringExecutor.setAppname(xxlJobProperties.getAppname());
// xxlJobSpringExecutor.setAddress(address);
// xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(xxlJobProperties.getPort());
// xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(xxlJobProperties.getLogPath());xxlJobSpringExecutor.setLogRetentionDays(xxlJobProperties.getLogRetentionDays());return xxlJobSpringExecutor;}
}
并在启动类上添加注解@EnableScheduling。
3.4 添加xxl-job测试
@Slf4j
@Component
@RequiredArgsConstructor
public class XxlJobTest {@XxlJob("xxlJobTest")public ReturnT<String> xxlJobTest(String date) {log.info("---------xxlJobTest定时任务执行成功--------");return ReturnT.SUCCESS;}}
3.5 xxl-job-admin添加执行器
回到 http://127.0.0.1:9080/xxl-job-admin/ 界面。
点击执行器管理 -> 新增
此处的AppName填你项目中配置的xxl.job.executor.appname名称。选择自动注册,保存即可。
3.6 添加任务
点击任务管理 -> 点击执行器下拉框
选择刚刚添加的执行器,然后点击“新增”按钮,新增任务:
注意,此处的JobHandler填@XxlJob注解后面的值。填好点击保存即可。就可以看到我们已经有一条任务了,此时点击“操作”,然后点击“启动”,定时任务就运行了。笔者这里是每分钟运行一次。
3.7 测试
此时启动我们的测试项目,会发现打印的启动日志已经注册到xxl-job。然后就能看到已经成功执行定时任务并打印日志。
到此,搭建到集成整个流程就完毕了。当然xxl-job远不止这点功能,对其他扩展信息感兴趣的小伙伴可以自行上网搜索,也可以访问Xxl-Job官方文档:https://www.xuxueli.com/xxl-job/
SpringBoot集成XxlJob分布式任务调度中心(超详细之手把手教学)相关推荐
- springboot集成XXL-JOB分布式任务调度平台
一.使用背景 目前许多项目使用的都是微服务架构,中间存在许多的定时任务.但如果定时任务维护在每个微服务下,当微服务部署多个实例的情况下,会出现定事任务多次执行的情况.并且在解决问题的基础上,希望能够实 ...
- xxl-job分布式任务调度中心部署实践(1)
文章目录 前言 环境说明 一.xxl-job是什么? 二.使用步骤 1.下载源码 2.工程介绍 3.xxl-job-admin配置 3.1 初始化数据库 3.2 修改xxl-job-admin配置 3 ...
- SpringBoot集成flyway、mybatis-plus(超详细)
拿到一个新需求,要给一个开发中的项目集成flyway进行数据库版本控制,对于flyway没有什么了解,就得先搭建一个demo练习一下,先知道怎么用,再集成到老项目上: 一.新建SpringBoot项目 ...
- SpringBoot集成xxl-job分布式定时任务
一.xxl-job定时任务搭建 下面这篇文章介绍了xxl-job平台搭建过程https://blog.csdn.net/xrq1995/article/details/126282290 二.spri ...
- 分布式任务调度中心xxl-job
xxl-job 分布式任务调度中心优点 xxl-job简介 部署调度中心 执行器的配置 任务配置 分布式任务调度中心优点 1.多台机器集群部署保证定时任务不被重复执行 2.动态的调整定时任务的执行时间 ...
- python建站部署_SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台...
SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台 一.概述 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源 ...
- springboot 集成xxl-job 定时任务管理平台
项目集成xxl-job https://github.com/nlxs0511/springmybatisplus.git 项目集成邮件 https://github.com/nlxs051 ...
- SpringBoot的Web开发支持【超详细【一篇搞定】果断收藏系列】
SpringBoot的Web开发支持 常用的服务器配置 使用Jetty服务器替换Tomcat 排除Tomcat的启动器,引入Jetty application.yml 编写入口程序 编写Control ...
- springboot集成swagger2多模块中文配置详细步骤,解决集成mybatis或mybatis-plus无法正常使用问题
springboot集成swagger2多模块中文配置详细步骤,解决集成mybatis或mybatis-plus无法正常使用问题 参考文章: (1)springboot集成swagger2多模块中文配 ...
最新文章
- 模型部署神器:高中生也能读懂的Docker入门教程
- tomcat更换服务器后无法显示验证码
- 仓位 001 998 AUFNAHME不存在(L9009)
- boost::quick_exit相关的测试程序
- php mysql 编码为utf-8_php连mysql用 utf-8编码乱码怎么办
- 深度理解java jvm,深度理解JVM
- Golang——文件创建和写入、OpenFile追加写入、Open读取文件、ReadBytes缓冲区读取、os.Args、flag
- linux nsf 扫描,linux 使用NSF 映射远程磁盘目录的实现
- 陈式心意混元太极拳功要
- 编译器各个步骤的介绍
- boost::serialization 用基类指针转存派生类(错误多多,一波三折)
- oracle12c linux安装教程
- 阿佐数据分析python小抄【pandas基础数据处理】
- 进销存excel_干货分享,上班族必看。EXCEL轻松搞定制作进销存报表
- C语言 输出正三角形图形
- 时域OCT与频域OCT的区别
- Premiere Pro CS6自学所需的视频编辑基础(一)
- Access数据库偏移注入
- 使用Ballerina构建API网关
- html如何使表单在页面居中显示,html怎样将表单居中