当前位置: 首页 > news >正文

SpringBoot集成xxl-job实现

SpringBoot集成xxl-job实现

一、xxl-job介绍

  1. xxl-job是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。
  2. 源码:下载地址
  3. 编译环境:Maven3+、Jdk1.8+、MySQL5.7+

二、调度中心

  1. 初始化调度数据库,执行指定目录下的SQL脚本,调度中心支持集群部署,各节点需要连接到同一个mysql实例,如果mysql做主从,调度中心集群节点强制走主库。
/xxl-job/doc/db/tables_xxl_job.sql
  1. 调度中心项目xxl-job-admin配置,修改其中的数据库连接。
/xxl-job/xxl-job-admin/src/main/resources/application.properties
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_pwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  1. 调度中心项目编译,打包部署,访问调度中心访问地址:http://localhost:8080/xxl-job-admin ,默认登录账号"admin/123456"。

三、配置部署执行器项目

  1. 添加maven依赖
<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>${project.parent.version}</version>
</dependency>
  1. 修改项目的application.properties配置
### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
xxl.job.executor.appname=xxl-job-executor-sample
### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
xxl.job.executor.address=
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9999
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
xxl.job.executor.logretentiondays=30
  1. 添加执行器配置
//XxlJobConfig.java
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {logger.info(">>>>>>>>>>> xxl-job config init.");XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppname(appname);xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;
}
  1. 在需要执行的方法上添加@XxlJob注解,并且指定value属性值,然后执行器项目编译打包执行

  2. 进入调度中心管理界面,新增执行器与任务

http://www.lryc.cn/news/1924.html

相关文章:

  • 欧几里得度量和余弦度量的可取消生物识别方案
  • 平板作为主机扩展屏的实现
  • HTTP和HTTPS有什么区别?如何实现网站的HTTPS?
  • Rockstar Games遭黑客攻击,《侠盗猎车手6》90个开发视频外泄
  • RabbitMQ-客户端源码之AMQPImpl+Method
  • 雅思经验(7)
  • Ubuntu20.04 用 `hwclock` 或 `timedatectl` 设置RTC硬件时钟为本地时区
  • 大学物理·第15章【量子物理】
  • 2010-2019年290个地级市经济发展与城市绿化数据
  • 【CSS 布局】-多列布局
  • 从C语言向C++过渡
  • Matter 研讨会回顾(第三期)|乐鑫 Matter 免开发方案与证书服务介绍
  • 函数栈帧的创建和销毁——“C”
  • 腾讯云对象存储+企业网盘 打通数据链“最后一公里
  • 在浏览器输入url到发起http请求,这过程发生了什么
  • PyTorch学习笔记:nn.ReLU——ReLU激活函数
  • 同步线程
  • 服务端返回内容跨域CORS之后,也在chrome/edge浏览器里显示出响应信息
  • DHCP中继及配置
  • 中国社科院与美国杜兰大学金融管理硕士,让我们相遇在春暖花开时
  • MySQL---单表查询、多表查询
  • 3年自动化测试这水平?我还不如去招应届生
  • 5 个自定义 React Hooks 将改变你的代码
  • Java学习笔记-03(API阶段)
  • Django自定义模板标签的使用详解
  • 洗地机怎么选?洗地机品牌排行榜
  • CSS的元素显示模式
  • 【MySQL Shell】8.9.1 在 InnoDB ClusterSet 中隔离集群
  • Ubuntu20.04+cuda11.2+cudnn8.1+Anaconda3安装tensorflow-GPU环境,亲测可用
  • 剑指Offer 第27天 JZ75 字符流中第一个不重复的字符