SpringBoot整合XxlJob分布式任务调度平台
1.XxlJob简介
官方网址:https://www.xuxueli.com/xxl-job
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
为什么要使用分布式任务调度呢?无论是针对分布式项目或者是Nginx负载均衡,传统的定时任务实现方式都很慢满足,比如
2.XxlJob快速入门
2.1 下载源码仓库地址
源码仓库地址 | Release Download |
---|---|
Https://GitHub.com/xuxueli/xxl-job | Download |
http://gitee.com/xuxueli0323/xxl-job | Download |
2.2 定时任务实现步骤
1.在数据库中执行项目中的sql脚本
2.目录结构说明
xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
:xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
:xxl-job-executor-sample-frameless:无框架版本;
3.修改调度中心配置文件
### WEB
server.port=8080
server.servlet.context-path=/xxl-job-admin### actuator
management.server.servlet.context-path=/actuator
management.health.mail.enabled=false### resources
spring.mvc.servlet.load-on-startup=0
spring.mvc.static-path-pattern=/static }
3.4 编写job类进行测试
@Component
public class TestXxlJob {
private static Logger logger = LoggerFactory.getLogger(TestXxlJob.class);
@XxlJob(value = "testJobHandler", init = "init", destroy = "destroy")
public void testJobHandler() throws Exception {
logger.info("进入xxlJob定时任务。。。。");
}
public void init(){
logger.info("init");
}
public void destroy(){
logger.info("destroy");
}
@XxlJob("testJobHandler02")
public void demoJobHandler() throws Exception {
XxlJobHelper.log("XXL-JOB, Hello World.");
logger.info("进入testJobHandler02定时任务。。。。");
}
}
创建执行器
创建任务
查看后台执行日志
如果需要xxlJob邮件报警功能,则需要在xxl-job-admin中进行配置邮件信息,并在创建任务时指定配置的邮箱地址
### xxl-job, email报警邮箱,如果定时任务执行失败会推送消息给该邮箱
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=XXX@qq.com
spring.mail.from=XXX@qq.com
spring.mail.passWord=授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.SocketFactory.class=javax.net.ssl.SSLSocketFactory
ps:如果定时任务执行频率很高,频繁失败的话,那收邮件就是一个噩梦~
4.XxlJob部署
4.1 jar包部署方式
jar包部署的方式比较简单,将项目编译打包部署到服务器上,其他服务和xxljob调度器之间网络、接口相通即可
4.2 Docker 镜像方式搭建调度中心
下载镜像
# Docker地址:https://hub.docker.com/r/xuxueli/xxl-job-admin/ (建议指定版本号)
docker pull xuxueli/xxl-job-admin
# 如需自定义 Mysql 等配置,可通过 "-e PARAMS" 指定,参数格式 PARAMS="--key=value --key2=value2" ;
# 配置项参考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
# 如需自定义 JVM内存参数 等配置,可通过 "-e JAVA_OPTS" 指定,参数格式 JAVA_OPTS="-Xmx512m" ;
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:{指定版本}
到此这篇关于SpringBoot整合XxlJob分布式任务调度平台的文章就介绍到这了,更多相关SpringBoot整合XxlJob内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!