XXL-Job 安装、使用
简介
XXL-Job 是一个分布式任务调度平台,它提供了任务管理、任务调度、任务执行等功能。通过 XXL-Job,你可以方便地管理和调度你的任务。
本文档将介绍如何安装 XXL-Job,进行基本的配置,以及如何在 Spring Boot 中集成 XXL-Job,并提供示例代码。
安装
XXL-Job 的安装非常简单,你可以按照以下步骤进行安装:
下载 XXL-Job 执行器 JAR 包。
可以在 XXL-Job 的官方网站(https://www.xuxueli.com/xxl-job/)下载最新版本的执行器 JAR 包。
部署执行器 JAR 包到你的项目中,并添加依赖。
将执行器 JAR 包添加到你的项目中的
libs
或lib
目录下。
配置执行器相关信息,如注册中心地址、执行器名称等。
打开执行器 JAR 包中的配置文件
application.properties
或application.yml
。配置注册中心地址:修改
xxl.job.admin.addresses
属性,指定调度中心的地址。例如:xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin
。配置执行器名称:修改
xxl.job.executor.appname
属性,指定执行器的名称。例如:xxl.job.executor.appname=my-job-executor
。
详细的安装步骤和配置说明可以参考 XXL-Job 官方文档。
配置
配置是使用 XXL-Job 的重要一步,你需要配置执行器和调度中心的相关信息。
执行器的配置包括执行器名称、注册中心地址、执行器端口等。调度中心的配置包括调度中心地址、调度中心端口等。
你可以通过修改执行器的配置文件 application.properties
或 application.yml
来进行配置。
以下是一些常用的配置属性:
xxl.job.admin.addresses
:调度中心的地址,例如http://localhost:8080/xxl-job-admin
。xxl.job.executor.appname
:执行器的名称,例如my-job-executor
。xxl.job.executor.ip
:执行器的 IP 地址,可以自动获取,一般无需配置。xxl.job.executor.port
:执行器的端口,默认为 9999。xxl.job.accessToken
:执行器和调度中心通信的访问令牌,可以设置一个安全的字符串。其他属性可以参考 XXL-Job 官方文档。
集成 Spring Boot
XXL-Job 提供了与 Spring Boot 集成的支持,以便更方便地使用 XXL-Job。
首先,在 Maven 或 Gradle 构建文件中添加 XXL-Job 的依赖项。
Maven 依赖:
<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.0</version> </dependency>
Gradle 依赖:
implementation 'com.xuxueli:xxl-job-core:2.3.0'
创建一个配置类,配置 XXL-Job 的相关信息,如调度中心地址、执行器配置等。
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class XxlJobConfig { @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; @Bean(initMethod = "start", destroyMethod = "destroy") public XxlJobSpringExecutor xxlJobExecutor() { XxlJobSpringExecutor xxlJobExecutor = new XxlJobSpringExecutor(); xxlJobExecutor.setAdminAddresses(adminAddresses); xxlJobExecutor.setAppName(appName); xxlJobExecutor.setIp(ip); xxlJobExecutor.setPort(port); xxlJobExecutor.setAccessToken(accessToken); return xxlJobExecutor; } }
在上述代码中,我们使用了
XxlJobSpringExecutor
类来集成 XXL-Job 和 Spring Boot。在配置类中,使用
@EnableXxlJob
注解启用 XXL-Job。import com.xxl.job.core.executor.XxlJobExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; @Configuration @EnableXxlJob public class XxlJobConfig { @Autowired private XxlJobExecutor xxlJobExecutor; }
使用
@EnableXxlJob
注解来启用 XXL-Job,并将XxlJobExecutor
自动注入到配置类中。在需要调度的任务方法上,使用
@XxlJob
注解标记任务。import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @Component public class MyJobHandler { @XxlJob("myJobHandler") public ReturnT<String> myJobHandler(String param) throws Exception { // 任务逻辑代码 // ... return ReturnT.SUCCESS; } }
在上述示例中,我们定义了一个名为
myJobHandler
的任务方法,并使用@XxlJob
注解进行标记。方法的参数可以根据实际需求进行定义和传递。
- 感谢你赐予我前进的力量