KFS支持定时计划解析和入库(含GUI)需求分析
关键字:
Kingbase FlySync、源端解析、GUI需求设计、人大金仓
需求背景
对比不同定时任务实现框架,最后选择quartz框架实现KFS定时解析任务,quartz提供了灵活的调度器,允许用户按照各种时间间隔和规则来安排任务的执行,可以设置简单的定时任务,也可以定义复杂的调度规则,满足多种应用场景,适合KFS在多场景下设置定时调度任务;quartz允许将调度信息持久化到数据库中,以确保在应用程序重启或者发生故障时不会丢失任务,适合KFS在应用环境下定时任务执行的可靠性;quartz提供了丰富的监听接口,允许在调度中插入自定义逻辑,监听任务执行的状态,处理任务执行过程中的异常,对KFS在不停机状态下的异常检查非常友好。根据定时调度原理,quartz框架的定时任务和调度的创建由KFS控制台完成,根据调度信息触发定时任务,调用replicator程序接口完成相应的定时任务。
定时任务的创建和调度需求
1、定时开关策略
-
- 从某个时间开始切换状态:
- 从某个时间点开始下线
- 从某个时间开始切换状态:
online-->offline
-
-
- 从某个时间点开始上线
-
offline-->online
- 设置定时online或者offline计划:(在某一时段执行一次,每天/每周/每月的某一时间段执行)
-
- 定时online计划:在某个时间点从下线状态上线,上线一段时间后下线
-
offline-->online一段时间-->offline
-
-
- 定时offline计划:在某个时间点从上线状态下线,下线一段时间后上线
-
online-->offline一段时间-->online
2、速度控制策略(限速/限量)
- 从某个时间起开始限制/解除限制:
-
- 从某个时间点开始限制解析速度
-
limit-->nolimit
-
-
- 从某个时间点开始解除限制
-
nolimit-->limit
- 设置定时限制或者解除限制计划:
-
- 定时limit计划:在某个时间点从不限制状态开始限制,限制一段时间后解除限制
-
nolimit-->limit一段时间-->nolimit
-
-
- 定时nolimit计划:在某个时间点从限制状态开始解除限制,解除限制一段时间后开始限制
-
limit-->nolimit一段时间-->limit
3、限制类别切换:
- 从某个时间起开始speedlimit/quantitylimit:
-
- 从某个时间点开始从限速转变为限量
-
speedlimit-->quantitylimit
-
-
- 从某个时间点开始从限量转变为限速
-
quantitylimit-->speedlimit
- 设置定时限制类型切换计划:
speedlimit-->quantitylimit-->speedlimit
quantitylimit-->speedlimit-->quantitylimit
4、策略冲突检查:
- 同一个数据节点同一个时间段内不能存在两种数据节点状态
- 同一条链路同一个时间段内不能存在两种限制类型
GUI功能设计项
1、创建任务:
- 任务名称(创建定时任务名称)
- 同步节点(选择定时任务执行的同步程序)
- 数据节点(选择定时任务执行的数据节点)
- 任务类别(选择定时任务类别)
- 定时开关(定时上线/下线服务)
- 状态切换
-原状态(online/offline)
-切换状态(offline/online)
- 状态定时
-定时类型(online/offline)
- 定时限速(定时开始/关闭限速)
-限制切换
-原状态(limit/nolimit)
-切换状态(nolimit/limit)
-限制定时
-定时类型(limit/nolimit)
-限制类型切换
-原状态(speedlimit/quantitylimit)
-切换状态(quantitylimit/speedlimit)
-限制类型定时
-定时类型(speedlimit/quantitylimit)
- 任务描述(创建任务的描述信息)
- 创建调度:
- 定时任务策略(创建任务调度策略)
- 调度名称(任务调度的名称)
- 执行任务(选择需要调度的任务)
- 调度策略(切换类型任务默认执行一次)
- 执行一次
- 每时
- 每日
- 每周
- 每月
- 选择日期(选择任务执行日期)
- 选择时间(选择任务执行时间)
- 调度描述(创建调度任务的描述信息)