|
|
@@ -1,158 +0,0 @@
|
|
|
-XXL-JOB 1.3 用户手册
|
|
|
-
|
|
|
-1. 简介 2
|
|
|
-1.1 背景 2
|
|
|
-1.1 发展 2
|
|
|
-1.2 概述 2
|
|
|
-1.2 特点 2
|
|
|
-1.3 下载 3
|
|
|
-1.4 环境 3
|
|
|
-2. 快速入门 4
|
|
|
-2.1 初始化"调度数据库" 4
|
|
|
-2.2 编译源码 5
|
|
|
-2.3 部署"调度中心" 5
|
|
|
-2.4 部署"执行器" 6
|
|
|
-2.5 开发第一个任务"Hello World" 6
|
|
|
-3. 系统详解 6
|
|
|
-3.1 源码目录介绍 6
|
|
|
-3.1 "调度数据库"详解 6
|
|
|
-3.2 "调度中心"详解 6
|
|
|
-3.3 "执行器"详解 6
|
|
|
-4. 任务详解 6
|
|
|
-4.1 BEAN模式任务 6
|
|
|
-4.2 GLUE任务任务 6
|
|
|
-5. 任务管理 6
|
|
|
-5.1 编辑任务信息 6
|
|
|
-5.2 编辑GLUE代码 6
|
|
|
-5.3 恢复/暂停 6
|
|
|
-5.4 手动触发一次调度 7
|
|
|
-5.5 查看日志 7
|
|
|
-5.6 删除任务 7
|
|
|
-6. 设计原理 7
|
|
|
-6.1 总体架构 7
|
|
|
-6.2 调度原理 7
|
|
|
-6.3 通讯原理 7
|
|
|
-6.4 执行器原理 7
|
|
|
-7. 其他 7
|
|
|
-7.1 接入登记 7
|
|
|
-7.2 报告问题 7
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-1. 简介
|
|
|
- 1.1 背景
|
|
|
- 作业调度系统我使用过相当一部分,比如Java Timer、linux corntab和quartz,但是都遇到一些共同的问题,开发成本高,维护复杂等等。在我进入大众点评之后,我试用过内部调度系统,功能完善,但是开发和部署流程略复杂。
|
|
|
- 我钟爱KISS原则,因此我萌发了打造XXL-JOB的想法,期望是能够创造一种全新的调度体验。
|
|
|
- 1.2 发展
|
|
|
- 我于2015-11-28在github上创建XXL-JOB项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计......
|
|
|
- 于2016-12-05日XXL-JOB终于release了第一个大版本V1.0, 随后我将之发布到OSCHINA,XXL-JOB在OSCHINA上获得了@红薯的推荐,同期分别达到了OSCHINA的"热门动弹"排行第一和git.oschina的月热度排行第一,在此特别感谢红薯,感谢大家的关注和支持。
|
|
|
- 于2015-12月中旬我将XXL-JOB发表到我司内部知识库,得到内部同事认可。于2016-01-21开始我司展开XXL-JOB的内部接入和定制工作。
|
|
|
- 我司大众点评已接入XXL-JOB,内部别名《Ferrari》(Ferrari基于XXL-JOB的V1.1版本定制而成,新接入应用推荐升级最新版本V1.3)。自2016-01-21接入至2016-05-20为止,该系统已调度40000余次,表现优异。
|
|
|
- 至今,XXL-JOB已接入多家公司的线上产品线,场景如电商业务,O2O业务和大数据作业等等,欢迎大家使用,XXL-JOB也将拥抱变化,持续发展。
|
|
|
- 1.3 概述
|
|
|
- XXL-JOB是一款简单高效的分布式任务调度平台,支持可视化且实时动态的管理Trigger和Job。
|
|
|
- 1.4 特点
|
|
|
- 简单:支持通过Web在线开发Job并配置,流程简洁;
|
|
|
- 高效:任务动态部署和配置,节省打包和部署消耗,提高开发效率;
|
|
|
- 分布式:得益于Quartz的集群支持,XXL-JOB调度中心天生支持HA,避免单点故障;
|
|
|
- 实时Trigger:支持可视化的管理Trigger,动态管理Triggrer;
|
|
|
- 实时Job:支持可视化的管理Job,动态管理Job,V1.3支持在线开发业务代码;
|
|
|
- 1.5 下载
|
|
|
- Github地址:https://github.com/xuxueli/xxl-job
|
|
|
- Git@OSC地址:http://git.oschina.net/xuxueli0323/xxl-job
|
|
|
- (我将会在两个git仓库同步发布最新代码)
|
|
|
-
|
|
|
-
|
|
|
- (图1.3:github下载链接位置)
|
|
|
- 源码下载请前往github自行下载,下载位置见上图1.3;
|
|
|
- 1.6 环境
|
|
|
- Maven3
|
|
|
- JDK1.7
|
|
|
- Tomcat7
|
|
|
- Mysql5.5
|
|
|
-
|
|
|
- 快速入门
|
|
|
- 2.1 初始化"调度数据库"
|
|
|
-
|
|
|
- (图2.1A:数据库建表SQL文件位置截图,)
|
|
|
-
|
|
|
- 请下载项目源码并解压,然后前往"图2.1A"所示目录,获取SQL脚本并执行,脚本文件位置:"源码解压根目录"\xxl-job\doc\db\tables_xxl_job.sql
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- (图2.1B:调度数据库表一览)
|
|
|
-
|
|
|
- 正常情况下,应该生成(图2.1B)中所示14张表。
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- 2.2 编译源码
|
|
|
-
|
|
|
- (图2.2:项目源码导入Eclipse截图)
|
|
|
-
|
|
|
- 解压源码,按照maven格式将源码导入IDE(文档以Eclipse为例),更新项目pom依赖,maven编译项目。
|
|
|
- 正常情况下,项目结构应该如图2.2所示,
|
|
|
- 2.3 配置部署"调度中心"
|
|
|
- "调度中心"项目:xxl-job-admin
|
|
|
-
|
|
|
-
|
|
|
- (图2.2A:数据库JDBC配置截图)
|
|
|
-
|
|
|
- 配置调度中心JDBC链接:请在图2.2A所示位置配置jdbc链接地址,链接地址请保持和 2.1章节 所创建的调度数据库的地址一致。
|
|
|
-
|
|
|
- (图2.2B:系统配置截图)
|
|
|
-
|
|
|
- 配置报警邮箱和登陆账号:请在图2.2B所示位置,设置自己的报警邮件发送邮箱和登陆账号密码。
|
|
|
-
|
|
|
-
|
|
|
- (图2.2C:调度中心部署截图)
|
|
|
-
|
|
|
- 部署项目:如果已经正确进行上述配置,可将项目部署到eclipse下的tomcat服务器中。或者,将"调度中心"项目导出war包单独部署。
|
|
|
-
|
|
|
- (图2.2D:"调度中心"登陆界面)
|
|
|
-
|
|
|
- 访问链接:http://localhost:8080/xxl-job-admin/
|
|
|
- 至此"调度中心"项目已经部署结束。
|
|
|
- 2.4 配置部署"执行器"
|
|
|
- "执行器"项目:xxl-job-client-demo
|
|
|
-
|
|
|
- (图2.4A:"执行器"项目Jdbc链接配置截图)
|
|
|
- 配置"执行器"项目Jdbc链接:请在图2.4A所示位置配置jdbc链接地址,链接地址请保持和 2.1章节 所创建的调度数据库的地址一致。
|
|
|
-
|
|
|
- (图2.4B:"执行器"部署截图)
|
|
|
- 部署项目:如果已经正确进行上述配置,可将项目部署到eclipse下的tomcat服务器中。或者,将"执行器"项目导出war包单独部署。
|
|
|
- 至此"执行器"项目已经部署结束。
|
|
|
- 2.5 开发第一个任务"Hello World"
|
|
|
-
|
|
|
- 系统详解
|
|
|
- 3.1 源码目录介绍
|
|
|
- 3.1 "调度数据库"详解
|
|
|
- 3.2 "调度中心"详解
|
|
|
- 3.3 "执行器"详解
|
|
|
- 任务详解
|
|
|
- 4.1 BEAN模式任务
|
|
|
- 4.2 GLUE任务任务
|
|
|
- 任务管理
|
|
|
- 5.1 编辑任务信息
|
|
|
- 5.2 编辑GLUE代码
|
|
|
- 5.3 恢复/暂停
|
|
|
- 5.4 手动触发一次调度
|
|
|
- 5.5 查看日志
|
|
|
- 5.6 删除任务
|
|
|
- 设计原理
|
|
|
- 6.1 总体架构
|
|
|
- 6.2 调度原理
|
|
|
- 6.3 通讯原理
|
|
|
- 6.4 执行器原理
|
|
|
- 其他
|
|
|
- 7.1 接入登记
|
|
|
- 更多接入公司,欢迎在https://github.com/xuxueli/xxl-job/issues/1 登记。
|
|
|
- 7.2 报告问题
|
|
|
- XXL-JOB托管在Github上,如有问题可在ISSUES上提问,也可以加入技术交流群(仅作技术交流):367260654 。
|