xxl-job(分布式调度任务)
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。
以下是一个简单的XXL-JOB使用示例,假设我们有一个简单的打印任务:
- 首先,在你的项目中引入XXL-JOB的依赖:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>版本号</version>
</dependency>
- 实现一个任务处理类,继承
com.xxl.job.core.handler.annotation.XxlJob
:
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
public class SampleXxlJob {
private static final Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);
@XxlJob("demoJobHandler")
public void execute() throws Exception {
// 任务逻辑
logger.info("XXL-JOB开始执行任务...");
// 你的任务代码
System.out.println("Hello, XXL-JOB!");
// 任务结束
logger.info("XXL-JOB任务执行结束.");
}
}
- 在
xxl-job-admin
中添加新的任务,调度配置时选择上面实现的方法名demoJobHandler
。 - 配置
xxl-job-admin
的地址和执行器相关信息,在项目的配置文件中:
# 调度中心地址
xxl.job.admin.addrs=http://localhost:8080/xxl-job-admin
# 执行器AppName
xxl.job.executor.appname=xxl-job-executor-sample
# 执行器IP
xxl.job.executor.ip=
# 执行器端口
xxl.job.executor.port=9999
# 执行器运行者名字
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
# 执行器日志保存天数
xxl.job.executor.logretentiondays=
- 在启动类上添加
@XxlJobScan
注解来扫描任务处理器:
import com.xxl.job.core.executor.XxlJobExecutor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import com.xxl.job.core.config.XxlJobConfig;
import com.xxl.job.core.handler.annotation.XxlJobScan;
@SpringBootApplication
@XxlJobScan("com.yourpackage.xxljob") // 指定任务处理器扫描包路径
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public XxlJobConfig xxlJobConfig() {
XxlJobConfig xxlJobConfig = new XxlJobConfig();
// 设置调度中心地址
xxlJobConfig.setAdminAddrs("http://localhost:8080/xxl-job-admin");
// 设置执行器的AppName
xxlJobConfig.setExecutorAppname("xxl-job-executor-sample");
// 设置执行器IP和端口
xxlJobConfig.setExecutorIp("");
xxlJobConfig.setExecutorPort(9999);
// 设置日志的保存路径
xxlJobConfig.setLogPath("/data/applogs
评论已关闭