任务调度中心 xxl-job springBoot

本文档展示了如何配置XXL-JOB执行器,并提供了示例代码来创建一个定时任务。配置包括调度中心地址、执行器服务名、IP、端口等参数,而定时任务代码中定义了一个名为'xxxxPromptHandler'的作业处理类,实现了IJobHandler接口,任务执行返回状态为SUCCESS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖

 <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.1.2</version>
        </dependency>

一、配置类

package com.xxxx.framework.config;

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;

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;

/**
 * xxl-job config
 *
 * @author chen.wang
 */
@Configuration
@Slf4j
public class XxlJobConfig {

    /** 调度中心后台地址 */
    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;
    /** 注册注册到调度中心的服务名 */
    @Value("${xxl.job.executor.appname}")
    private String appName;
    /** 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务" */
    @Value("${xxl.job.executor.ip}")
    private String ip;
    /** 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口 */
    @Value("${xxl.job.executor.port}")
    private int port;
    /** 执行器通讯TOKEN [选填]:非空时启用 */
    @Value("${xxl.job.accessToken}")
    private String accessToken;
    /** 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径 */
    @Value("${xxl.job.executor.logpath}")
    private String logPath;
    /** 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效 */
    @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.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobSpringExecutor;
    }
}

二、定时任务代码

package com.xxxx.project.tsr.task;

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import org.springframework.stereotype.Component;

/**
 * @author chen.wang
 */
@JobHandler(value = "xxxxPromptHandler")
@Component
public class XxxxtPromptJobHandler extends IJobHandler {


    @Override
    public ReturnT<String> execute(String s) throws Exception {
        // 任务代码
        return ReturnT.SUCCESS;
    }

}

### Spring Boot 中集成 XXL-JOB 实现分布式任务调度 #### 项目准备及环境搭建 为了在 Spring Boot 项目中集成并使用 XXL-JOB 来实现分布式任务调度,需先完成基础准备工作。这主要包括两个方面:配置运行调度中心(`xxl-job-admin`),以及设置执行器项目[^1]。 对于 `xxl-job-admin` 的安装与部署,官方提供了详细的指导说明。解压源码之后,依据 Maven 结构导入 IDE 并利用 Maven 工具进行编译操作即可快速上手。值得注意的是,在此过程中应当关注到不同模块的功能划分——其中 `xxl-job-admin` 是作为整个系统的调度核心存在,承担着统一管理和触发各项定时任务的重要职责[^2]。 #### 执行器项目的创建与配置 当完成了调度中心的构建后,则转向于执行器部分的工作。针对基于 Spring Boot 构建的应用程序而言,推荐采用 `xxl-job-executor-sample-springboot` 版本来简化开发流程。该样本不仅能够直接投入使用,同时也为开发者自定义改造现有业务逻辑成为可能,从而更好地适应特定应用场景下的需求变化[^4]。 具体来说,在引入上述依赖项的基础上,还需进一步调整应用内的相关参数设定以确保两者间通信顺畅无阻: ```java @Configuration public class XxlJobConfig { @Value("${xxl.job.admin.addresses}") private String adminAddresses; @Bean public XxlJobSpringExecutor xxlJobExecutor() { logger.info(">>>>>>>>>>> xxl-job config init."); XxlJobSpringExecutor executor = new XxlJobSpringExecutor(); executor.setAdminAddresses(adminAddresses); executor.setAppname("your_project_name"); executor.setIp(null); // 自动获取本地IP地址 executor.setPort(9999); // 设置端口号 return executor; } } ``` 以上代码片段展示了如何通过 Java Config 方式注册一个名为 `XxlJobSpringExecutor` 的 Bean 对象至容器之中,并对其属性进行了必要的初始化处理。 #### 数据库表结构设计 最后但同样重要的一环在于数据库层面的设计考量。XXL-JOB 提供了一套完整的 SQL 脚本用于辅助用户建立所需的数据存储模型,这些表格涵盖了诸如作业信息、日志记录等多个维度的内容支持,有助于后续运维人员监控和维护集群状态。因此建议参照官方文档给出的标准模板实施相应的 DDL 操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值