分布式定时任务Xxl_Job详细使用手册

看了很多网上的版本,思路描述的都不是很清晰,都只是几步操作就完成了,看效果,导致容易走入弯路(不排除是自己理解能力把),最开始以为是把admin模块集成到项目,后来测试了会,才明确是服务模块,无代码侵入,直接引用,少了很多思路明确分析,所以记录一下心得,方便后续上手

官方下载地址最新版:https://www.xuxueli.com/xxl-job/
下载项目结构示例图

在这里插入图片描述

下载项目结构如图所示,其实主要是启动admin模块

思路:类似于服务端。运行思路就是引入xxl-job-core包到需要的项目,配置好过后,就可以注册到admin服务中,通过自带的页面就可以看到对应定时任务

接下来开始操作:

第一步:在xxl-job-admin中配置自己的数据库

​ 导入sql文件: ./doc/db/tables_xxl_job.sql 到数据库

​ 有需要或者想尝试配置邮件接收异常信息可以配置 spring.mail.**

​ logback.xml中间改变日志配置路径,(可以自定义路径)

<property name="log.path" value="./logs/xxl-job-admin.log"/>

​ 就可以启动admin模块了,访问http://192.168.0.177:8080/xxl-job-admin 即可看到页面

​ 默认用户名 :admin 密码: 123456

在这里插入图片描述

第二步: 配置客户端

​ 引入jar包

        <dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>最新版本</version></dependency>

​ 上配置:

xxl:job:admin:addresses: http://192.168.0.177:8080/xxl-job-admin   #服务器启动的 服务地址accessToken: default_tokenexecutor:# 执行器的应用名称appname: xxlJobTest# 执行器注册 [选填]:优先使用该配置作为注册地址address:# 执行器IP [选填]:默认为空表示自动获取IPip:# 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999port: 8081# 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;logpath: E:\\www\\ffw\\log#logpath: /data/logs/mls/job# 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;logretentiondays: 30

服务注入配置

@Configuration  //是否开启xxl-job定时任务,注释掉 //@Configuration 则不开启定时任务
@Data
@Slf4j
public class XxlJobConfig {@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;@Beanpublic XxlJobSpringExecutor xxlJobExecutor() {XxlJobHelper.log(">>>>>>>>>>> xxl-job config init.>>>>>>>>>>>");System.out.println("=============== xxl-job config init.===============");XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppname(appname);xxlJobSpringExecutor.setAddress(address);xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}}

编写测试用例

@Slf4j
@Component
public class XxlJobTest{@XxlJob(value = "xxlJobTest")public void xxlJobTest() {System.out.println("---------xxlJobTest定时任务执行成功--------");}
}

启动项目即可完成,看着一下表示启动成功
在这里插入图片描述

第三步:测试用例

​ 手动创建,选择bean注入模式

在这里插入图片描述

接下来就可以执行一次,看看效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我敢说,这是你必会的网络端口知识

下午好&#xff0c;我的网工朋友&#xff0c;新年快乐&#xff01; 端口是计算机网络技术中非常基础的概念&#xff0c;不管是网络实施、运维、还是软件开发&#xff0c;总是能听到端口二字。 理论上来说&#xff0c;端口数最多可以有65535个。 端口概念在网络技术中&#x…

结构体的一些小技巧

有一天在写洛谷的一道题的时候&#xff0c;我想出来大概思路&#xff0c;但是有几步我想破头也无法实现。 后来看了题解&#xff0c;发现原来结构体可以这样使用。 比如&#xff0c;现在有一个结构体&#xff1a; struct person {char gender;int age, high, height; };它表…

DDoS 攻击并不是全部来自于PC组成的僵尸网络

DDoS&#xff0c;分布式拒绝服务攻击&#xff0c;是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击&#xff0c;或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。很多人会以为DDoS 攻击&#xff0c;全都是攻击者控制PC肉鸡发起的攻击…

柯桥专业会计学校之相关财税知识,2023年新版增值税税率表

一、增值税税率 一般纳税人增值税税率&#xff1a;13%&#xff0c;9%&#xff0c;6%&#xff0c;0%&#xff0c;都适用于哪些项目&#xff1f;我们具体来看&#xff1a;&#xff08;目前小规模纳税人3%征收率减按1%执行&#xff09; 二、扣除率 扣除率是指增值税计征中法定扣除…

【Bootstrap学习 day7】

Bootstrap按钮 按钮样式 使用.btn相关类实现 <button type"button" class"btn">基本按钮</button> <button type"button" class"btn btn-primary">主要按钮</button> <button type"button" cl…

【数据结构-单链表】(C语言版本)

今天分享的是数据结构有关单链表的操作和实践&#xff08;图解法&#xff0c;图变化更利于理解&#xff09; 记录宗旨&#x1f4dd;&#xff1a; 眼&#xff08;脑&#xff09;过千遍&#xff0c;不如手过一遍。 我们都知道单链表是一种常见的链表数据结构&#xff0c;由一系列…

【Java进阶篇】String中 intern 的原理是什么?

String中 intern 的原理 ✔️ 典型解析✔️小思考&#xff08;回顾&#xff09; ✔️字面量✔️intern✔️ intern原理✔️a和1有什么不同✔️答案 ✔️ 典型解析 字符串常量池中的常量有两种来源&#xff1a; 1、 字面量会在编译期先进入到Class常量池&#xff0c;然后再在运行…

milvus学习(一)cosin距离和欧式距离

参考&#xff1a;https://blog.csdn.net/qq_36560894/article/details/115408613 归一化以后的cosin距离和欧式距离可以相互转化&#xff0c;未归一化的不可以相互转化&#xff08;因为距离带单位&#xff09;。

C++多态性——(2)联编

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 成功的秘诀就在于多努力一次&#xff…

自动化测试中,如何增加失败重试机制!

01、前言 在执行自动化测试用例时&#xff0c;会发现有时候用例失败并非代码问题&#xff0c;而是由于服务正在发版&#xff0c;导致请求失败&#xff0c;从而降低了自动化用例的稳定性&#xff0c;最后还要花时间定位到底是自身case的原因还是业务逻辑问题&#xff0c;还是其…

电子招标采购系统源码之从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理

​随着市场竞争的加剧和企业规模的扩大&#xff0c;招采管理逐渐成为企业核心竞争力的重要组成部分。为了提高招采工作的效率和质量&#xff0c;我们提出了一种基于电子化平台的解决方案。该方案旨在通过电子化招投标&#xff0c;使得招标采购的质量更高、速度更快&#xff0c;…

宣传照(私密)勿转发

精美的海报通常都是由UI进行精心设计的&#xff0c;现在有100 件商品需要进行宣传推广&#xff0c;如果每个商品都出一张图显然是不合理的&#xff0c;且商品信息各异。因此需要通过代码的形式生成海报。对此&#xff0c;我也对我宣传一波&#xff0c;企图实现我一夜暴富的伟大…

贪心算法part04 860柠檬水找零 406根据身高重建队列

860 柠檬水找零 406 根据身高重建队列 452 用最少数量的箭引爆气球

六、HTML 段落

HTML 可以将文档分割为若干段落。 一、HTML 段落 段落是通过 <p> 标签定义的。 <p>这是一个段落 </p> <p>这是另一个段落</p> 注意&#xff1a;浏览器会自动地在段落的前后添加空行。&#xff08;</p> 是块级元素&#xff09; 二、不…

[蓝桥杯知识学习] 树链

DFS序 什么是DFS序 怎么求DFS序 进入操作&#xff0c;将有计数 出&#xff1a;可以理解为&#xff0c;没有孩子可以去了&#xff08;不能&#xff0c;向下行动&#xff1a;对应于程序里的入栈&#xff09;&#xff0c;所以回到父结点&#xff08;向上行动&#xff0c;对应于程…

SCENIC+:增强子和基因调控网络的单细胞多组学推理

SCENIC&#xff1a;增强子和基因调控网络的单细胞多组学推理 摘要IntroductionSCENIC 使用超过 30,000 个 TF 基序来预测 eGRNSCENIC 在 PBMC 多组数据上的图示SCENIC prioritizes functional enhancers &#xff08;SCENIC 优先考虑功能增强剂&#xff09;SCENIC simulates ph…

从0到1实战,快速搭建SpringBoot工程

目录 一、前言 二、准备工作 2.1 安装JDK 2.2 安装Maven 2.3 下载IDEA 三、从0到1搭建 3.1 创建SpringBoot工程 3.2 运行SpringBoot工程 四、总结 一、前言 SpringBoot是一个在Spring框架基础上构建的开源框架&#xff0c;不仅继承了Spring框架原有的优秀特性&#x…

Selenium自动化测试之学会元素定位

这是我经常被问到的一个问题&#xff0c;也是我很讨厌回答的问题&#xff0c;因为要想回答这个问题需要知道上下文。什么样式的元素&#xff0c;有哪些属性&#xff0c;是否有表单嵌套&#xff0c;都尝试了哪些定位方法。。。而且没几个提问者能事先详细的说明这些。哪儿像提bu…

centos7通过systemctl启动springboot服务代替java -jar方式启动

背景&#xff1a;以前启动jar包都是通过java -jar&#xff0c;后面了解到一种注册服务式启动jar包的方式&#xff0c;所以做个记录。 注意&#xff1a;我在写该篇博客的时候&#xff0c;给脚本代码都加了#注释来解释该行脚本命令的意思&#xff0c;所以可能出现复制该篇博客脚本…

Android 13 - Media框架(29)- MediaCodec(四)

上一节我们了解了如何通过 onInputBufferAvailable 和 getInputBuffer 获取到 input buffer index&#xff0c;接下来我们一起学习上层如何拿到buffer并且向下写数据的。 1、获取 input Buffer 获取 MediaCodec 中的 buffer 有两种方式&#xff0c;一种是调用 getInputBuffers…