XXL-JOB分布式任务调度平台(真·保姆级教程)
程序员闪充宝
共 3553字,需浏览 8分钟
· 2022-05-15
前言
XXL-JOB 是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
https://gitee.com/xuxueli0323/xxl-job.git
xxl-job-admin 搭建
| 拉取代码
| 启动任务调度中心
账号:admin 密码:123456 (初始状态下)。
| 登录成功
到此为止,第一阶段 xxl-job-admin 模块的部署就完成啦。
整合 SpringBoot 项目
接下来就是如何整合到自己的 SpringBoot 项目中。
| 引入 maven 依赖
如下图:
注意:此处版本要与 xxl-job-admin 中版本保持一致。
| 引入配置类
如下图:
@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;
@Bean
public 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;
}
/**
* 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
*
* 1、引入依赖:
*
* org.springframework.cloud
* spring-cloud-commons
* ${version}
*
*
* 2、配置文件,或者容器启动变量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
* 3、获取IP
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
*/
}
| 修改 yml 配置文件
代码如下:
xxl:
job:
admin:
# 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。
# 执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
addresses: http://127.0.0.1:8086/xxl-job-admin
# 执行器通讯TOKEN [选填]:非空时启用;
accessToken:
executor:
# 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
appname: xxl-job-executor-mileage
# 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。
#从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
address:
# 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;
# 地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
ip:
# 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
port: 8088
# 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
logpath: /data/applogs/xxl-job/jobhandler
# 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
logretentiondays: 30
logging:
config: classpath:logback.xml
| 编写测试类
代码如下:
@Component
public class MileageXxlJob {
private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);
/**
* 1、简单任务示例(Bean模式)
*/
@XxlJob("mileageJobHandler")
public void mileageJobHandler() throws Exception {
XxlJobHelper.log("XXL-JOB, Hello World.");
for (int i = 0; i < 5; i++) {
XxlJobHelper.log("beat at:" + i);
System.out.println("ok");
TimeUnit.SECONDS.sleep(2);
}
// default success
}
}
编写完成后,启动服务!(注意启动顺序,先启动 xxl-job-admin 模块,再启动您的 springboot 服务)
| 任务调度中心,配置服务
注:测试选择执行一次即可,如需项目保持运行,选择启动。
到此,XXL-JOB 与 SpringBoot 的简单整合入门教程就完成了,感谢您的查阅!
文章来源:https://c1n.cn/L01Io
精彩推荐:
别再自己瞎写工具类了,SpringBoot 内置工具类应有尽有, 建议收藏!!
评论
真高!比亚迪员工爆料比亚迪在越南的薪资水平:基本工资480万,全勤奖35万,交通补助20万,餐补110万,每周6天,每天10小时
上一篇:某大公司为逼迫员工离职,竟然把他的工位安排到厕所旁,没想到他直接开始记录领导的如厕时间,还发到公司大群...对此,你怎么看?--完--PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。全文完,感谢你的耐心阅读。如果你还想看到我的文章,请一定给本
开发者全社区
0
英伟达Blackwell平台网络配置分析
本文来自“英伟达Blachwell平台网络配置详解”。GTC大会英伟达展示了全新的 Blackwell 平台系列产品,包括 HGX B100 服务器、NVLINK Switch、GB200Superchip Computer Node、Quantum X800 交换机和 CX8 网卡(InfiniB
架构师技术联盟
0
周鸿祎是真牛逼
最近在各个视频平台,我的推荐信息流上一定会出现红衣教主周鸿祎的身影,俨然是新一代的顶流IP网红,还是自己贼有钱的那种。不得不说,周鸿祎是真牛逼,他是懂得学习的。年初的时候,他就发文:“如今已是网红时代,我现在已经拜了俞敏洪为师,在学习如何当网红,每天勤奋的发短视频”。“有时候也在劝很多亚布力大哥级
公子龙
1
阿里的同事,写的代码真 TMD 优雅!
通过这篇文章你将了解到整洁的代码对项目、公司和你的重要性,以及如何书写整洁的代码.通过命名、类、函数、测试这四个章节,使我们的代码变得整洁.1、为什么要保持代码整洁?不整洁的代码随着时间的增加而增加时,生产力会随之降低.导致的结果就是:代码不易扩展或扩展容易引发其他问题程序崩溃加班增加公司成本(加人
Java专栏
1
美团还是快手,选个offer真纠结!
JavaGuide官方网站:javaguide.cn当面临多个还不错的 offer 时,做起选择是真心让人纠结,真心祝福各位都能有这种纠结的时候。纠结是正常的,毕竟选择一个 offer 的考虑因素太多了,并不仅仅是说谁给的钱多一点就跟谁干。如果真这么简单的话,那也就没啥可纠结的了。这篇文章我会结合一
JavaGuide
0
竞业真太TM恶心了!
看到一个新闻,本周漂亮国的联邦贸易委员会(FTC) 宣布全面禁止所有员工(包括高级管理人员)签署新的竞业禁止协议。对于现有的竞业协议,高级管理人员的现有竞业协议仍然有效,其他员工的现有竞业协议则在规定生效日期后不再强制执行。由于国外的互联网发展的早,很多国内的习惯也是照搬他们的,现在漂亮国
公子龙
2
展讯平台手机重启问题分析指南
和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、 User 版本 默认开启 sysdump 方法二、插入SD卡 抓取Sysdump log三、 sysdump log 分析四、展讯平台抓取重启 串口log的方案五、展讯平台判断重启类型六、展讯平台关闭
程序员Android
0
985学历真好用,一面答的再差也能过?
JavaGuide官方网站:javaguide.cn相对其他行业如律师、金融等,程序员求职面试对学历的包容度还是相对较高的,尤其是在过去几年。通常情况下,如果候选人在其他方面(如实习经历、项目经历、竞赛经历)表现突出,可以在一定程度上弥补学历的不足。不过,由于现在面试越来越卷,一些大厂、国企和研究所
JavaGuide
1