You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xxl-job/README.md

112 lines
6.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 分布式任务调度平台xxl-job
源码地址
- github地址https://github.com/xuxueli/xxl-job
- git.osc地址http://git.oschina.net/xuxueli0323/xxl-job
- 我将会在两个git仓库同步发布最新代码用户手册放置在源码“/doc”目录下https://github.com/xuxueli/xxl-job/tree/master/doc开箱即用
博客地址
- oschina地址http://my.oschina.net/xuxueli/blog/690978
- cnblogs地址http://www.cnblogs.com/xuxueli/p/5021979.html
- csdn地址http://blog.csdn.net/xuxueli0323/article/details/51674330
技术交流群(仅作技术交流)367260654 [![image](http://pub.idqqimg.com/wpa/images/group.png)](http://shang.qq.com/wpa/qunwpa?idkey=4686e3fe01118445c75673a66b4cc6b2c7ce0641528205b6f403c179062b0a52)
# 特点:
- 1、简单支持通过Web页面对任务进行CRUD操作操作简单一分钟上手
- 2、动态支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效;
- 3、调度HA“调度中心”基于集群Quartz实现可保证调度中心HA
- 4、任务HA任务支持多地址配置可保证任务HAFailover
- 5、一致性“调度中心”通过DB锁保证集群分布式调度的一致性
- 6、自定义任务参数支持在线配置调度任务入参即时生效
- 7、调度线程池调度系统多线程触发调度运行确保调度精确执行不被堵塞
- 8、执行日志支持在线查看调度结果并且查看完整的执行日志
- 9、邮件报警任务失败时支持邮件报警同时可自定义失败次数阀值
- 10、支持登录验证
- 11、GLUE提供Web IDE支持在线开发任务逻辑代码动态发布实时编译生效省略部署上线的过程。
# 新版本 V1.1.x特性
**【于V1.1.x版本XXL-JOB正式应用于我司内部定制别名为 “Ferrari”新接入应用推荐使用最新版本V1.3.x】**
- 1、简单支持通过Web页面对任务进行CRUD操作操作简单一分钟上手
- 2、动态支持动态修改任务状态动态暂停/恢复任务,即时生效;
- 3、服务HA任务信息持久化到mysql中Job服务天然支持集群保证服务HA
- 4、任务HA某台Job服务挂掉任务会平滑分配给其他的某一台存活服务即使所有服务挂掉重启时或补偿执行丢失任务
- 5、一个任务只会在其中一台服务器上执行
- 6、任务串行执行
- 7、支持自定义参数
- 8、支持远程任务执行终止
# 新版本 V1.2.x新特性
- 1、支持任务分组
- 2、支持“本地任务”、“远程任务”
- 3、底层通讯支持两种方式Servlet方式 + JETTY方式
- 4、支持“任务日志”
- 5、支持“串行执行”并行执行
说明V1.2版本将系统架构按功能拆分为:
调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求;
执行模块(执行器):负责接收调度请求并执行任务逻辑;
通讯模块:负责调度模块和任务模块之间的信息通讯;
优点:
解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立;
高扩展性;
稳定性;
# 新版本 V1.3.x新特性
- 1、遗弃“本地任务”模式推荐使用“远程任务”易于系统解耦任务对应的JobHander统称为“执行器”
- 2、遗弃“servlet”方式底层系统通讯推荐使用JETTY方式调度+回调双向通讯,重构通讯逻辑;
- 3、UI交互优化左侧菜单展开状态优化菜单项选中状态优化任务列表打开表格有压缩优化
- 4、【重要】“执行器”细分为BEAN、GLUE两种开发模式简介见下文
“执行器” 模式简介:
BEAN模式执行器每个执行器都是Spring的一个Bean实例XXL-JOB通过注解@JobHander识别和调度执行器
GLUE模式执行器每个执行器对应一段代码在线Web编辑和维护动态编译生效执行器负责加载GLUE代码和执行
# 新版本V1.3.1
- 1、更新项目目录结构
/xxl-job-admin -------------------- 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
/xxl-job-core ----------------------- 公共依赖
/xxl-job-executor-example ------ 【执行器】:负责接收调度请求并执行任务逻辑;
/db ---------------------------------- 建表脚本
/doc --------------------------------- 用户手册
- 2、在新的目录结构上升级了用户手册
- 3、优化了一些交互和UI
# 新版本1.3.2
- 1、调度逻辑进行事务包裹
- 2、执行器异步回调执行日志
- 3、【重要】在 “调度中心” 支持HA的基础上扩展执行器的Failover支持支持配置多执行期地址
# 规划中
- 1、任务终止时任务队列中调度回调通过被终止的接口
- 2、任务执行规则自定义假如前一个任务正在执行后续调度执行规则支持自定义
串行(默认,当前逻辑):后续调度入调度队列;
并行:后续调度并行执行;
Pass后续调度被Pass
- 3、兼容oracle
- 4、任务依赖
# 源码目录说明
- /xxl-job-admin 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
- /xxl-job-core 公共依赖
- /xxl-job-executor-example 【执行器】:负责接收调度请求并执行任务逻辑;
- /db 建表脚本
- /doc 用户手册
# Tips
我司大众点评已接入XXL-JOB内部别名《Ferrari》于V1.1.x版本XXL-JOB正式应用于我司内部定制别名为 “Ferrari”新接入应用推荐使用最新版本V1.3.x。自2016-01-21接入至2016-05-20未知内部XXL-JOB系统已调度45000余次表现优异。新接入应用推荐使用最新版本V1.3因为经过两个大版本的更新系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的提升核心功能更加稳定高效。
XXL-JOB已接入多家公司的线上产品线接入场景如电商业务O2O业务和大数据作业等截止2016-05-20为止XXL-JOB已接入的公司包括不限于
- 1、大众点评
- 2、山东学而网络科技有限公司
- 3、安徽慧通互联科技有限公司
- 4、人人聚财金服
- 5、上海棠棣信息科技股份有限公司
- 6、……
更多接入公司欢迎在https://github.com/xuxueli/xxl-job/issues/1 登记。