XXLJob与SpringCloud整合

本文档详细介绍了XXLJob的配置和使用步骤,包括下载解压数据库脚本、配置admin、设置SpringCloud项目以及XXLJobConfig和XXLJobHandler的实现。通过实例展示了如何在SpringCloud项目中引入XXLJob依赖,创建并执行定时任务。最后,检查调度日志以验证任务执行成功。

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

图示

在这里插入图片描述

下载,建表

网上链接一堆,自己找去,下载完了解压之后是个聚合工程,复制doc>db>.sql文件里面的内容,打开数据库的可视化工具,新建查询粘贴,执行

admin配置,logback.xml配置

配置端口号我习惯用7001…
配置contextpath…随便
配置datasource…改驱动改用户名和密码
配置警示邮件…随便写
其他不用动


logback.xml不改它

启动admin是否成功 成功的话 直接打包就ok

新建SpringCloud项目

注册中心->提供者->消费者
怎么配?SpringCloud案例我这里面说的很清楚了不再赘述
值得一提的是刚才xxljob那个工程中的sample-springboot中的resource给拷一份
在这里插入图片描述

到消费方的Resource中,就像下面这样
在这里插入图片描述
SpringCloud项目目录
在这里插入图片描述
今天的关键在这里
在这里插入图片描述

首先需要引入pom依赖,就是刚才打包到maven仓库里的xxljob

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

讲一下这里面XXLJobConfig 和XXLJobHandler

XXLJobConfig

@Configuration
@ComponentScan(basePackages = "com.shanghai.xxljob.handler")

public class XXLJobConfig {
    private Logger logger = LoggerFactory.getLogger(XXLJobConfig.class);

    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;

    @Value("${xxl.job.executor.appname}")
    private String appName;

    @Value("${xxl.job.executor.ip}")
    private String ip;

    @Value("${xxl.job.executor.port}")
    private int port;

    @Value("${xxl.job.accessToken}")
    private String accessToken;

    @Value("${xxl.job.executor.logpath}")
    private String logPath;

    @Value("${xxl.job.executor.logretentiondays}")
    private int logRetentionDays;


    @Bean(initMethod = "start", destroyMethod = "destroy")
    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;
    }
}

XXLJobHandler

@Component
public class XXLJobHandler {

    @XxlJob("yicheSpringCloud")
    public void doSomeThing(){
        XxlJobHelper.log("哈喽");
    }
}

开始定时任务

第一步
运行刚开始admin打成的jar包
在这里插入图片描述

第二步
进入控制台
在这里插入图片描述
执行器管理->新增执行器(因为我已经增加过了),这里的机器地址要和application.properties中的xxl.job.executor.ip(不写表示本机)+xxl.job.executor.port一致

在这里插入图片描述
在这里插入图片描述
第三步注册任务
打开任务管理新建任务,这里面的jobHandler要和@XxlJob中的value值一致
在这里插入图片描述
在这里插入图片描述

执行

首先开项目
注册中心->提供方->消费方都启动起来
随后进入xxljob控制台,任务管理操作选择启动
在这里插入图片描述
显示已经在执行
在这里插入图片描述
看一下是不是调度日志中有执行结果,比如如下在这里插入图片描述
执行日志中有JobHandler中我们写的日志内容注意 不能用@Slf4j 只能用XxlJobHelper.log去打印日志
在这里插入图片描述
看是不是和我们jobhandler是不是和我们要求录入的日志一致
在这里插入图片描述

总结

很入门的XXLJob的使用,陆续我会介绍如何用代码去动态创建执行暂定停止任务,以及创建执行器

### 如何在 Spring Cloud 中配置 XXL-JOB 分布式任务调度平台 #### 配置调度中心 为了使 Spring Cloud 项目能够利用 XXL-JOB 的功能,首先需要设置调度中心。这涉及到修改位于 `/xxl-job/xxl-job-admin/src/main/resources/application.properties` 文件中的配置项[^2]。 ```properties # 调度中心数据库连接信息 spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=password ``` 这些属性指定了 MySQL 数据库的位置以及访问该数据库所需的凭证,用于存储任务调度有关的数据。 #### 创建任务执行类 接着,在 Spring Cloud 应用程序内定义具体的任务逻辑。此过程涉及编写带有 `@XxlJob` 注解的方法来指示哪些函数应该作为定时任务被执行[^3]。 ```java import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @Component public class SampleXxlJob { @XxlJob("demoTaskHandler") public void demoTaskHandler() throws Exception { System.out.println("XXL-JOB, Hello World."); } } ``` 上述代码片段展示了如何声明一个简单的打印消息的任务处理器。 #### 整合优化 完成基本配置之后,还需要确保调度中心和执行器之间的通信顺畅无阻。在整个集成流程里,正确设定两者间的交互参数至关重要。另外,借助于 XXL-JOB 提供的强大图形界面工具,管理员可以方便地查看并调整正在运行的各项作业的状态,从而保障系统的稳定性和效率[^4]。 对于更高级别的需求,比如采用 Spring Boot 来管理执行器,则建议参照官方文档中给出的最佳实践指南进行操作[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

商朝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值