目录
主题
本篇文章主要介绍ZDH-调度服务及应用场景,当前介绍版本为5.6.2,当前版本重构了调度时间机制,简化了流程,方便理解
项目源码
zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台
预览地址
用户名:zyc
密码:123456
安装包下载地址
需要用户下载源码自行编译,源码见上方项目源码
调度服务
调度服务是zdh平台比较核心重要的模块,截止到5.6.1版本,调度模块重构了多次,目前调度服务主要包含3个方向,数据ETL任务调度,智能营销模块策略调度,烽火台告警模块监控调度,调度服务基于开源的quartz框架,采用mysql做存储,实现分布式调度,并在此基础上实现调度可视化,指定调度机,任务依赖级别等高级功能,当前调度不是一个通用的调度,是为zdh平台定制化的调度平台,因此和zdh平台高度适配
调度可视化
调度可视化是指用户可通过拖拉拽方式实现调度任务的编排,并提供多种调度任务类型,支持配置告警,自动化调度,指定调度机执行等功能,如下图
调度器管理
调度器是调度模块的执行引擎,目前在quartz基础上,增加了调度器可视化管理,调度上线/下线等功能,管理员可方便进行调度器的管理,如下图
调度时间控制
当前调度模块中有以下时间相关名词
表达式:调度目前支持2种表达式,一种是业内常用的cron 表达式,一种是zdh实现的傻瓜式表达式,cron 表达式可自行百度等, zdh内置的表达式 如下,支持秒,分钟,天 3种时间单位,比如1s 表示1秒,100m 表示100分钟,5d表示 5天,这个表达式比较简单,表示每x秒/分/天 执行一次
调度时间策略:可选择 【使用调度触发时间】, 勾选后,调度中的时间参数 以逻辑触发时间为基准做运算(如果调度因特殊原因延迟触发,这里的调度触发时间,还是逻辑触发时间,举例:一个任务定义每小时10分执行,某天系统故障等原因导致 任务在每小时 20分执行,这里运算的时间 还是每小时10分)
回退时间差:当选择【使用调度触发时间】时,此配置有效,基准时间=调度触发时间-时差
起始日期:调度生效的时间范围,在5.6.2版本之前,这个起始日期仅对 【不使用调度触发时间】任务有效, 5.6.2 版本及之后 不区分调度时间策略,都生效
执行模式:可选择 顺时间执行, 执行一次,2种模式,多数场景都使用 顺时间执行,执行一次是顺时间执行的特殊行为
步长:当选择【不使用调度触发时间】时,此配置生效,选择步长之后, 基准时间=起始日期/上次执行日期 + 步长(秒/分钟/天)
恢复策略:系统异常时,默认不恢复,可选择错过的所有历史任务,或者执行最近一次任务
调度告警服务
调度告警目前实现较为简单,可选择失败,完成,超时 告警, 告警的渠道可以选择 邮箱,ZDH内部通知,短信(短信需要阿里云账号)
调度优先级
调度优先级根据自定义数字实现, 数字越大,优先级越高,实现原理,就是按优先级排序进行任务发现
总结
调度模块是zdh平台重要的一部分,基于quartz框架实现分布式调度,并在此基础上增加了可视化功能,指定调度机执行,异常恢复等高级功能, ETL任务调度,营销策略调度等 都是基于调度模块实现
感谢支持
如果觉得项目有意思可以在github上给个星星和fork, 也可以分享给朋友, zdh_web:GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台