一个分布式任务调度平台。
本文参考3W学习方法来叙述内容。
一、What
1、什么是xxl-job?开发者是谁?
一个Java开发的开源的轻量级的分布式任务调度平台,由国人许雪里开发,现就职业于美团点评,xxl即作者名字的首字母组合。
二、Why
1、为什么需要分布式任务调度平台?
- 微服务架构中,散落在每个服务模块中的job需要集中管理,才方便故障排查处理和统一扩展规划。
2、为什么学习使用xxl-job?
- 开源、学习简单、开发迅速
- 轻量级、易扩展
- 国人开发,学习人家的设计思想
三、How
1、设计原理
主要由调度中心和执行器两个模块组成。参考官方描述:
- 调度中心:负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。
- 执行器:负责接收调度请求并执行任务逻辑。
下面是官方提供的架构图:
2、快速上手使用
下载项目源码解压后(源码仓库地址),简要操作步骤如下(官网详细操作):
- 数据库初始化
- 配置部署“调度中心”(必要:配置数据库地址)
- 配置部署“执行器项目”(必要:配置调度中心部署根地址)
- 调度中心-任务管理页面,新建任务
- 等待任务触发或手动执行,查看日志
其中定时任务的业务代码编写,主要支持两种方式:
- BEAN模式:执行器端编写,实现JobHandler类的任务执行方法。
- GLUE模式:以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler。