以下是一个使用 XXL-JOB 替换 Quartz 定时任务的具体代码示例:
一、项目依赖
假设使用 Spring Boot 项目,在pom.xml中添加 XXL-JOB 的依赖:
xml
复制
二、配置 XXL-JOB 执行器
创建一个配置类来配置 XXL-JOB 执行器:
java
复制
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.address}")
private String address;
@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.logPath}")
private String logPath;
@Value("${xxl.job.logRetentionDays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppName(appName);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
在application.properties中配置 XXL-JOB 的相关参数:
properties
复制
xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin
xxl.job.executor.appname=your-app-name
xxl.job.executor.address=
xxl.job.executor.ip=
xxl.job.executor.port=9999
xxl.job.accessToken=
xxl.job.logPath=/data/applogs/xxl-job/jobhandler
xxl.job.logRetentionDays=30
三、创建定时任务类
java
复制
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class SampleXxlJob {
@XxlJob("sampleJobHandler")
public ReturnT<String> execute(String param) {
log.info("执行 XXL-JOB 定时任务,参数:{}", param);
// 这里是任务的具体逻辑
return ReturnT.SUCCESS;
}
}
四、在 XXL-JOB 管理平台配置任务
启动 XXL-JOB 管理平台(可从 XXL-JOB 项目中获取并部署)。
登录管理平台,添加执行器,配置应用名称等与上述代码中一致的参数。
创建任务,选择任务类型为 “Bean 模式”,任务名称自定义,执行方法填写刚刚创建的定时任务类中的方法名(如sampleJobHandler),并设置任务的触发规则等参数。
通过以上步骤,就可以使用 XXL-JOB 替换 Quartz 定时任务,实现定时任务的可视化管理和分布式执行等功能。