要将xxl-job集成到spring boot项目中,可以按照以下步骤进行操作:
首先,从Gitee拉取xxl-job的源码,并将其配置为Docker镜像部署到服务器上。
# 执行Maven打包mvn clean install构建Docker镜像,镜像名称中不允许使用下划线
docker build -t xxl-job:latest .
接下来,在自己的Spring Boot项目中创建一个新的任务执行器,首先需要在项目的pom.xml文件中引入xxl-job的Maven依赖。
com.xuxuelixxl-job-core${project.parent.version}
然后,在项目的配置文件(如application.yml或application.properties)中添加xxl-job的配置信息。
xxl:job:admin:addresses: https://www.php.cn/link/7ece221bf3f5dbddbe3c2770ac19b419accessToken: executor:appname: xxl-job-executor-sampleaddress: ip: port: 8082logpath: /data/applogs/xxl-job/jobhandlerlogretentiondays: 30
在项目的resources目录下添加logback.xml文件,用于配置日志输出。
logback%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n${log.path}${log.path}.%d{yyyy-MM-dd}.zip%date %level [%thread] %logger{36} [%file : %line] %msg%n
创建一个名为XxlJobConfig的配置类,用于初始化xxl-job执行器。
package com.cgd.xxljobexecutor.config;import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;
/**
xxl-job config
@author xuxueli 2017-04-28*/@Configurationpublic 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;}
/**
- 针对多网卡、容器内部署等情况,可借助 "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();*/}
最后,编写一个简单的定时任务示例。
package com.cgd.xxljobexecutor.xxlJob;
import com.xxl.job.core.biz.model.ReturnT;import com.xxl.job.core.handler.annotation.XxlJob;import org.springframework.stereotype.Component;
/**
- @author chengd
- @version 1.0
- @date 2021/5/19 15:24*/@Componentpublic class PushJob {@XxlJob("PushJobHandler")public ReturnT PushJobHandler(String param){ReturnT returnT = new ReturnT();returnT.setCode(ReturnT.SUCCESS_CODE);returnT.setContent("test");returnT.setMsg("
test
");return returnT;}}完成上述步骤后,启动Spring Boot应用,并登录到xxl-job管理后台(
ip:8082/xxl-job-admin)查看是否已自动注入执行器的IP。
然后,创建并执行上述代码中的任务,查看执行日志。

执行任务后查看日志:

代码存放在Gitee仓库中,使用了Nacos和xxl-job。如果需要执行新的定时任务,请创建新分支,完成后提交pull request。
以上就是Springboot项目引入xxl-job的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/26751.html
微信扫一扫
支付宝扫一扫