XXL-JOB是一个分布式任务调度平台,具有丰富的功能和良好的扩展性。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 架构设计

    • 调度中心:作为整个系统的控制中心,负责任务的分发、执行监控以及结果收集等功能。它可以通过HTTP方式向执行器发送调度请求,也可以接收执行器主动推送的任务执行结果。
    • 执行器:部署在各个业务服务节点上,负责接收调度中心的任务调度指令并执行相应的任务逻辑。每个执行器可以独立运行,它们之间互不影响,能够灵活地进行扩容和缩容。
  2. 任务类型

    • 一次性任务:只执行一次的任务,比如初始化数据导入。
    • 定时任务:基于Cron表达式定期执行的任务。
    • 手动执行任务:支持用户手动触发执行的任务。
  3. 核心功能

    • 分布式调度:支持跨机器、跨数据中心部署执行器,调度中心可以根据执行器的负载情况进行智能调度。
    • 弹性伸缩:执行器可以动态上下线,上线后自动加载任务,下线后自动转移任务至其他执行器。
    • 任务执行跟踪与日志:对每个任务执行过程进行详细的记录,包括开始时间、结束时间、耗时、状态(成功、失败)、错误信息、执行日志等。
    • 失败重试与报警:任务执行失败后支持重试,且有完善的报警机制,如邮件通知、企业微信、钉钉等。
    • 任务阻塞处理策略:对于执行超时或者业务异常导致的任务长时间阻塞,可以设置超时后杀死任务进程,防止故障蔓延。
  4. 使用方法

    • 在Spring Boot项目中集成XXL-JOB,首先需要引入相关依赖并配置执行器基本信息,如执行器地址、AppName等。
    • 创建任务处理器(IJobHandler的实现类),并在其中编写具体业务逻辑。
    • 登录XXL-JOB的调度中心Web界面,添加新的任务并关联已定义好的任务处理器,设置好任务类型、执行参数、触发规则等属性。

总之,XXL-JOB提供了一种简单而强大的分布式任务调度解决方案,广泛应用于数据同步、定时统计、定时邮件发送等各种定时任务场景。
SpringBoot集成XXL-JOB分布式任务调度平台,主要包括以下步骤:

  1. 添加依赖

在SpringBoot项目的pom.xml文件中添加XXL-JOB的starter依赖:

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>{latest-version}</version>
</dependency>

请将{latest-version}替换为XXL-JOB的最新版本号。

  1. 配置XXL-JOB

在application.yml或application.properties中配置XXL-JOB的相关信息,例如:

# application.yml
xxl:
  job:
    admin:
      addresses: http://localhost:8080/xxl-job-admin # 调度中心部署跟地址
    executor:
      appname: demoApp # 执行器AppName
      address: localhost:9999 # 执行器注册地址
      ip: localhost # 执行器IP
      port: 9999 # 执行器端口
      logpath: /data/applogs/xxl-job/jobhandler # 执行器日志路径
      logretentiondays: 30 # 日志保留天数
  1. 创建执行器

创建一个继承自com.xxl.job.core.executor.XxlJobExecutor的类,并在Spring Boot的主类中通过@Bean注解注入到Spring容器中:

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

@Configuration
public class XxlJobConfig {

    @Bean
    public XxlJobExecutor xxlJobExecutor() {
        XxlJobExecutor xxlJobExecutor = new XxlJobExecutor();
        xxlJobExecutor.setAdminAddresses("http://localhost:8080/xxl-job-admin");
        xxlJobExecutor.setAppname("demoApp");
        // 其他配置项...
        return xxlJobExecutor;
    }
}
  1. 创建任务处理器

实现com.xxl.job.core.handler.IJobHandler接口,编写具体的业务逻辑:

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;

public class DemoJobHandler implements IJobHandler {

    @Override
    public ReturnT<String> execute(String param) throws Exception {
        System.out.println("XXL-JOB, Hello World.");
        // 在这里编写你的任务处理逻辑
        return ReturnT.SUCCESS;
    }

    // 注意:BeanName需要与xxl_job_registry中的jobHandler一致
    @Override
    public String toString() {
        return "DemoJobHandler";
    }
}
  1. 注册任务到调度中心

登录XXL-JOB管理后台,新建任务并选择刚刚创建的任务处理器。

以上就是在SpringBoot项目中集成XXL-JOB的基本步骤,具体根据实际需求可能还需要进行更细致的配置和优化。

GitHub 加速计划 / xx / xxl-job
27.15 K
10.79 K
下载
xxl-job: 是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。
最近提交(Master分支:3 个月前 )
e5d26ba2 - 3 个月前
977ad87b - 3 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐