xxlJob 分布式定时任务
1.下载地址
https://github.com/xuxueli/xxl-job
2.打开项目,并创建xxl-job数据库
3.修改xxl-job-admin配置并启动
默认账号 admin
默认密码 123456
4. 配置springboot项目,注册到xxljob中
4.1 引入maven依赖
<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.3.0</version>
</dependency>
4.2 修改 application.yml
xxl:job:admin:##注册到启动的xxljob服务中addresses: http://127.0.0.1:8888/xxl-job-adminaccessToken: default_tokenexecutor:##执行器名称appname: xxl-job-executor-sample##监听端口 同一服务下端口不能重复port: 9999logpath: /data/applogs/xxl-job/jobhandlerlogretentiondays: 30address:ip: 127.0.0.1
4.3 增加config配置
@Configuration
public class XxlJobConfig {private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);@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() {logger.info(">>>>>>>>>>> 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;}
}
4.4 增加任务处理器
新版本中取消了 @JobHandler 注解,采用了@XxlJob注解
@Component
public class SampleXxlJob {private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);@XxlJob("demoJobHandler")public void demoJobHandler() throws Exception {String param = XxlJobHelper.getJobParam();//参数信息logger.info(param);XxlJobHelper.log("XXL-JOB, Hello World.");//日志打印会输出到任务里}
}
5. 将项目配置到 xxljob 中
5.1 配置执行器
5.2 配置任务
5.3 设置任务状态,也可以单独执行一次
5.4 查看日志信息
5.5 路由策略-分片广播
在任务管理中,路由策略都是在单个节点上执行,如果单个节点扛不住会产生事故,为了处理这种情况我们用到了分片广播,也就是所有的节点都会执行,每个服务可以执行对应的数据,缓解服务端压力
@XxlJob("demo")
public void demo(){String jobParam = XxlJobHelper.getJobParam();System.out.println(jobParam);int shardIndex = XxlJobHelper.getShardIndex();//执行的第几个节点,从0开始int shardTotal = XxlJobHelper.getShardTotal();//所有节点数量System.out.println("shardIndex "+shardIndex);System.out.println("shardTotal "+shardTotal);
}
##打印信息
100
shardIndex 0
shardTotal 2
引入业务之后,参数作为每页数量,将index作为页数、total数量,对每个节点进行内部分页处理
xxlJob 分布式定时任务相关推荐
- SpringBoot集成xxl-job分布式定时任务
一.xxl-job定时任务搭建 下面这篇文章介绍了xxl-job平台搭建过程https://blog.csdn.net/xrq1995/article/details/126282290 二.spri ...
- 【xxl-job】轻松实现分布式定时任务demo实例
[项目描述] 前段时间专门独立了一个spring boot服务,用于做和第三方erp系统的对接工作.此服务的第一个需求工作就是可以通过不同的规则,设置不同的定时任务,从而获取erp系统的商品数据.所以 ...
- xxljob 配置具体定时任务_快速使用分布式定时任务 xxl-job
快速使用分布式定时任务 xxl-job 需要linux服务器环境安装: jdk1.8 ,docker 安装步骤地址 : linux快速安装jdk . 在linux里安装docker 1.docke ...
- 分布式定时任务—xxl-job学习(四)——调度中心web页面端api调用源码分析
分布式定时任务-xxl-job学习(四)--调度中心web页面端api调用源码分析 前言 一.controller目录下非controller类 1.1 PermissionLimit自定义注解 1. ...
- 分布式定时任务—xxl-job学习(三)——调度中心(xxl-job-admin)的启动和任务调度过程源码分析
分布式定时任务-xxl-job学习(三)--调度中心(xxl-job-admin)的启动和任务调度过程源码分析 RabbitsInTheGrass 2020-06-30 10:31:08 813 ...
- 轻量级分布式定时任务框架XXL-Job
轻量级分布式定时任务框架XXL-Job: XXL-JOB是一款轻量级的分布式定时任务框架,上手简单,操作容易,XXL-Job可以到官网下载也可以去gitee上拉取源码,其中核心模块分页两个:1:是分布 ...
- XxlJob(一) 分布式定时任务XxlJob用法及核心调度源码详解
目录 一.XxlJob 的Executor 1. 使用Spring框架注入 2. 不使用框架注入 3. 使用jar包的形式集成executor 二.XxlJob的核心工作原理 1. 注册JobHand ...
- 几种主流的分布式定时任务,你知道哪些?
欢迎关注方志朋的博客,回复"666"获面试宝典 单点定时任务 JDK原生 自从JDK1.5之后,提供了ScheduledExecutorService代替TimerTask来执行定 ...
- quartz 分布式_6大分布式定时任务对比
作者 | sharedCode 来源 | blog.csdn.net/u012394095/article/details/79470904 分布式定时任务简介 把分散的,可靠性差的计划任务纳入统一的 ...
- XXL-Job分布式任务调度
分布式情况下定时任务会出现哪些问题? 分布式集群的情况下,怎么保证定时任务不被重复执行 分布式定时任务解决方案 ①使用zookeeper实现分布式锁 缺点(需要创建临时节点.和事件通知不易于扩展) ② ...
最新文章
- SOLOv 2:实例分割(动态、更快、更强)
- Centos6.5安装Kibana
- 异常:Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- PostgreSQL 连接的问题
- Android学习笔记17:单项选择RadioButton和多项选择CheckBox的使用
- mysql数据库产生的背景_MySql路途之mysql背景
- 揭开2016手机进化史 寒冬整合重返市场成主旋律
- diffmerge对比时出现中文乱码的解决办法
- openwrt中br-lan,eth0,eth0.1,eth0.2
- 数字图像处理 自学笔记 (武汉大学 贾永红)
- 主播必备超萌代打猫咪,超人气全键盘版资源下载~
- Compression-Expansion Coding Improvements in MLC/TLC NVM论文解读
- 解锁ChatGPT超高级玩法,展示动态图片,纯干货分享!
- 微信自动邀请加群!!!
- 怎么把知网CAJ转换成可复制文字的PDF文件
- Tensorflow 从bin文件中读取数据并
- 天猫魔盒挂载ext4移动硬盘
- java 获取两个时间差_java如何获取两个日期的时间差
- WinHttp.WinHttpRequest.5.1
- 升级Windows10,安装程序无法正常启动无法初始化工作目录