XXL-JOB 是一个分布式任务调度框架,主要用于实现大规模的定时任务调度。它提供了简单易用的界面和灵活的扩展能力,非常适合用于微服务架构下的任务调度需求。本文将带你快速入门 XXL-JOB。
一、环境准备
在开始之前,确保你的开发环境中已经安装了以下软件:
- Java JDK:版本 1.8 或以上
- Maven:用于项目管理和构建
- Redis:用于存储任务调度信息
- MySQL:用于存储任务执行记录
- XXL-JOB Admin:任务调度的管理后台
二、搭建 XXL-JOB 项目
- 创建 Maven 项目
首先,使用 Maven 创建一个新的 Java 项目。在 pom.xml
中添加以下 XXL-JOB 的依赖:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version> <!-- 请根据最新版本进行更改 -->
</dependency>
- 配置 XXL-JOB Admin
下载 XXL-JOB 的 Admin 模块(可以从 GitHub 获取),启动 Admin 的 Java 应用(xxl-job-admin-xx.jar
),访问默认地址 http://localhost:8080。首次访问时,创建管理员账户。
在 Admin 界面中添加一个执行器,记录下执行器的 appName
, address
, ip
, port
, 和 loggingPath
等信息。
- 配置 数据源
在 application.properties
文件中配置 MySQL 和 Redis 的连接信息。例如:
xxl.job.executor.appname = your_app_name
xxl.job.executor.address = http://localhost:9999/xxl-job-executor
xxl.job.executor.ip = 127.0.0.1
xxl.job.executor.port = 9999
xxl.job.executor.logpath = /tmp/xxl-job/logs
xxl.job.executor.logretentiondays = 30
spring.datasource.url = jdbc:mysql://localhost:3306/xxl_job?useUnicode=true&characterEncoding=utf8
spring.datasource.username = your_username
spring.datasource.password = your_password
三、编写任务代码
在项目中创建一个简单的任务。以下是一个执行 "Hello World" 消息的示例任务类:
import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.handler.IJobHandler;
@JobHandler(value = "helloJobHandler")
public class HelloJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
System.out.println("Hello XXL-JOB! Param: " + param);
return SUCCESS;
}
}
四、注册任务
在 XXL-JOB Admin 界面中,注册新任务:
- 选择 "任务管理" -> "新增任务"
- 填写任务相关信息,包括任务名称、执行器(选择前面创建的执行器)、任务处理器(填写
helloJobHandler
),并设置 CRON 表达式(例如0/10 * * * * ?
表示每十秒执行一次)。 - 保存任务,任务将会定时触发并执行。
五、启动执行器
在你的项目主类中添加 @EnableXxlJob
注解以启用 XXL-JOB 功能:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.xxl.job.core.handler.annotation.EnableXxlJob;
@SpringBootApplication
@EnableXxlJob
public class XxlJobExampleApplication {
public static void main(String[] args) {
SpringApplication.run(XxlJobExampleApplication.class, args);
}
}
接下来启动你的 Spring Boot 应用程序,任务将在指定时间执行。
六、监控与日志
在 XXL-JOB Admin 界面中,可以通过 "任务监控" 查看任务的执行情况,并可查看日志信息,方便我们调试与维护。
总结
通过以上步骤,我们已经完成了 XXL-JOB 的环境搭建和简单任务的创建与注册。XXL-JOB 提供了强大的任务调度能力,并且易于扩展,适合各种业务场景。希望本文对你了解和使用 XXL-JOB 有所帮助!