人大金仓KFS支持定时计划解析和入库(含GUI)需求分析(二)

108 阅读4分钟

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)

  • 任务描述(创建任务的描述信息)
  1. 创建调度:
  • 定时任务策略(创建任务调度策略)
  • 调度名称(任务调度的名称)
  • 执行任务(选择需要调度的任务)

- 调度策略(切换类型任务默认执行一次)

- 执行一次

- 每时

- 每日

- 每周

- 每月

- 选择日期(选择任务执行日期)

- 选择时间(选择任务执行时间)

- 调度描述(创建调度任务的描述信息)