Spring boot接入xxl-job

Spring boot接入xxl-job

导入maven包

xml 复制代码
        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.3.0</version>
        </dependency>

加入配置

shell 复制代码
#xxl-job部署的地址,如果是集群部署存在多个地址则用逗号分隔。
xxl.job.admin.addresses=http://172.31.128.102:8333/xxl-job-admin
#执行器通讯TOKEN(跟xxl-job服务的配置保持一致)
xxl.job.accessToken=default_token
#执行器AppName(xxl-job控制台中配置的执行器名字)
xxl.job.executor.appname=time-update-handler
#执行器注册:优先使用该配置作为注册地址,为空时使用内嵌服务 "IP:PORT" 作为注册地址。
xxl.job.executor.address=
#执行器IP:默认为空表示自动获取IP
xxl.job.executor.ip=
#执行器端口号:小于等于0则自动获取,默认端口为9999。(用于接收调度中心发送过来的任务调度请求,并将任务执行的结果返回给调度中心)
xxl.job.executor.port=8334
#执行器运行日志文件存储磁盘路径,为空则使用默认路径;
xxl.job.executor.logpath=
#执行器日志文件保存天数: 过期日志自动清理, 限制值大于等于3时生效;-1, 关闭自动清理功能;
xxl.job.executor.logretentiondays=15

增加配置类

java 复制代码
@Configuration
public class XxlJobConfig {

    @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() {
        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;
    }
}

创建执行器类(写job的业务逻辑)

java 复制代码
@Slf4j
@Component
public class TimeJob {

    /**
     * 示例
     */
    @XxlJob("timeUpdateJob")
    public void clockInJobHandler() {
        //todo 在这里写具体的业务代码
    }
}

去控制台中配置job

1.先配置执行器

2.再配置任务

3.启动job

到这里就完成了!

如果想在linux上安装xxl-job可以看这篇文章:点我

相关推荐
余槐i1 小时前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
nice_lcj5206 小时前
【从零理解 Spring AI · 03】Spring AI 在 Spring 生态里的位置
java·spring boot·大模型·spring ai·ai应用开发
AI源码21 小时前
旅游推荐管理系统
spring boot
aiks_yuan1 天前
Spring Boot SSE 流式输出变成一次性返回怎么办:大模型打字机效果失效的 5 个原因(Spring Boot 4.1.2 实测)
spring boot
Thomas.Sir1 天前
第15课:SpringBoot连接池详解:HikariCP配置、调优、监控,4.x连接池新特性
java·spring boot
VimorphTech1 天前
每批开 4 个线程,为什么限制不住 TTS 的总并发?
java·spring boot·spring
杨凯凡1 天前
Spring Boot 缓存一致性怎么保证?@Cacheable、@CacheEvict 与事务提交时机实战
java·spring boot·spring cache·后端开发·缓存一致性
软件技术NINI1 天前
基于SpringBoot和Vue的项目评审系统
javascript·vue.js·spring boot·后端·spring·毕业设计·毕设
vipxieliang1 天前
Spring Boot 性能优化实战:从启动加速到运行时调优
java·spring boot
AI全栈学习助手1 天前
告别“转圈等待”:Spring Boot + SSE 让大模型像 ChatGPT 一样流式输出
java·人工智能·spring boot·后端·aigc