XXL-JOB 简述

应该都写过代码里的定时任务,启动类加个注解,任务头上加个注解哈,但这个定时任务是写死在当前代码里的,部署到哪,在哪定时生效。而 XXL-JOB 是一个分布式任务调度平台,它提供了丰富的功能来管理和执行定时任务。以下是使用 XXL-JOB 的一个简单流程,包括相关的代码实现和操作步骤:

预备条件

  1. XXL-JOB 控制台:需要先部署 XXL-JOB 管理控制台(通常是一个独立的 Java Web 应用),你可以从 XXL-JOB GitHub 仓库 获取。
  2. Spring Boot 项目:在你的 Spring Boot 应用中集成 XXL-JOB,以便任务调度。

部署 XXL-JOB 控制台

  1. 下载 XXL-JOB 示例项目并运行:

    git clone https://github.com/xuxueli/xxl-job.git
    cd xxl-job
    mvn clean install -DskipTests
    cd xxl-job-admin
    mvn spring-boot:run
    
  2. 打开浏览器并访问 http://localhost:8080/xxl-job-admin,使用默认账号(admin/123456)登录。

Spring Boot 项目集成 XXL-JOB

  1. 添加依赖:在你的 pom.xml 文件中添加 XXL-JOB 的依赖。

    <dependency>
        <groupId>com.xuxueli</groupId>
        <artifactId>xxl-job-core</artifactId>
        <version>2.3.1</version> <!-- 这里版本号需要根据实际情况更新 -->
    </dependency>
    
  2. 配置 XXL-JOB:在 application.propertiesapplication.yml 中配置 XXL-JOB 执行器。

    # application.properties
    xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin
    xxl.job.executor.appname=example-executor
    xxl.job.executor.ip=127.0.0.1
    xxl.job.executor.port=9999
    xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
    xxl.job.executor.accessToken=
    
  3. 创建任务处理器:创建一个任务处理器类。

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * XxlJob开发示例(Bean模式)
 * <p>
 * 开发步骤:
 * 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String param)"
 * 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
 * 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
 *
 * @author xuxueli
 */
@Component
public class SampleXxlJob {
	private static final Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);


	/**
	 * 1、简单任务示例(Bean模式)
	 */
	@XxlJob("demoJobHandler")
	public ReturnT<String> demoJobHandler(String param) throws Exception {
		XxlJobLogger.log("XXL-JOB, Hello World.");
		for (int i = 0; i < 5; i++) {
			XxlJobLogger.log("beat at:" + i);
			TimeUnit.SECONDS.sleep(2);
		}
		return ReturnT.SUCCESS;
	}


}
  1. 启动 Spring Boot 应用:确保你的应用启动,并能够连接到 XXL-JOB 控制台。

配置并运行任务

  1. 登录 XXL-JOB 控制台
  2. 添加执行器:在 “执行器管理” 中添加一个新的执行器,名称与 application.properties 中配置的一致。
  3. 创建任务:在 “任务管理” 中新建一个任务,选择刚创建的执行器。
    • 调度类型:选择 BEAN
    • JobHandler:填写为 sampleJobHandler
    • 调度配置:如需定时调度,可以填写 Cron 表达式。
  4. 启动任务:创建完成后,可以手动启动这个任务来测试执行效果。

这样设置后,你的 XXL-JOB 任务应该能够正常调度和执行。通过控制台,可以查看任务执行的日志并进行监控和管理。(不过业务范围广,多地部署,要注意任务定时设置的时区问题

posted @ 2025-01-09 15:52  J九木  阅读(129)  评论(0)    收藏  举报