返回
从demo快速入门xxl-job源码分析
后端
2023-10-19 04:17:36
正文:
一、简介
xxl-job是一款热门的分布式定时调度平台,由上海易立信推出的开源项目。其拥有可视化的web展示界面,使用起来非常简单便捷,且支持多种调度策略和丰富的功能。
二、安装与启动
- 安装:
git clone https://github.com/xuxueli/xxl-job.git
cd xxl-job
mvn clean install -Dmaven.test.skip=true
- 启动:
cd xxl-job-admin
nohup java -jar xxl-job-admin-2.1.1.jar > xxl-job-admin.log 2>&1 &
cd xxl-job-executor
nohup java -jar xxl-job-executor-2.1.1.jar > xxl-job-executor.log 2>&1 &
三、项目结构
xxl-job由多个模块组成,主要包括:
- xxl-job-admin:管理控制台模块
- xxl-job-executor:执行器模块
- xxl-job-core:核心公共模块
- xxl-job-glue:任务执行器Glue代码库
四、核心原理
xxl-job采用分布式架构,由管理控制台和多个执行器组成。管理控制台负责任务调度和监控,执行器负责执行任务。管理控制台和执行器通过HTTP接口进行通信。
五、调度策略
xxl-job支持多种调度策略,包括:
- Cron表达式
- 固定延迟
- 固定速率
- 上一次执行完成后延迟
六、任务执行
任务执行时,管理控制台会将任务信息发送给执行器,执行器根据任务信息执行任务。任务执行完毕后,执行器会将执行结果反馈给管理控制台。
七、任务监控
管理控制台提供可视化的任务监控界面,可以实时查看任务的状态、执行日志等信息。
八、代码结构分析
xxl-job的代码结构清晰,易于理解。主要模块如下:
- xxl-job-admin:管理控制台模块,主要负责任务调度和监控。
- xxl-job-executor:执行器模块,主要负责执行任务。
- xxl-job-core:核心公共模块,提供了任务调度、任务执行、任务监控等核心功能。
- xxl-job-glue:任务执行器Glue代码库,提供了各种语言的任务执行器实现。
九、使用示例
- 创建任务:
@XxlJob(value = "myJob", cron = "0/5 * * * * ?", shardingTotal = 10)
public class MyJobHandler implements IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
System.out.println("XXL-JOB, Hello World.");
return ReturnT.SUCCESS;
}
}
- 执行任务:
curl -X POST -H 'Content-Type: application/json' -d '{"jobHandler":"myJob","executorParam":""}' http://127.0.0.1:9333/jobinfo/run
十、总结
xxl-job是一款功能强大、使用简单的定时调度平台,其源码结构清晰,易于理解。通过对xxl-job源码的分析,可以更好地了解其原理,以便更好地进行定制化开发与改造。