在产品中,控制信息主要通过具有一定规则的文本实现,且该文本信息直接面向用户设计开发。因此,掌握该文本信息的组织规则是设计 TASKCTL控制器的根本前提。
理解作业控制器,我们首先需理解调度中与控制容器(流程、定时器)相关的几个基本概念,它们分别是:作业、控制器、流程、定时器和调度。
TASKCTL 调度的核心作业就是按实际应用需求有序控制批量程序的运行, 主要实施原理如下图所示:
通过上图,可以了解知道,调度系统的控制目标是按要求执行各种各样的作业程序,为了完成这一目标,我们主要通过两部分工作完成。第一步,构建一个可以解析流程信息的控制核心,第二步,按项目需求开发配置流程控制信息。调度核心通过解析按照项目需求开发的流程信息,从而完成项目的调度需求。
由此可知,流程信息是整个调度的核心信息,对调度的实际运行起到决定性作用。
我们分别了解控制器的基本概念与作用。本节主要说明控制器在实施时的主要信息结构、信息文件的组织结构以及核心信息模块文件的设计思路。
为了完成调度,从信息层面上,TASKCTL 需要多种类型的信息对流程进行设计与描述,其信息结构如下:
由上图可知,流程信息主要包括两种类型的信息:总控信息与核心信息。
总控信息
总控信息指流程的主要概述信息以及一些基本控制信息,我们可以将其称为流程的工程信息,就像传统面向对象编程一样,在设计程序时,需要一个工程文件,通过该文件来描述程序的基本信息、基本引用、主程序、类信息等概述信息。
流程核心信息是流程设计的主要内容,包括作业基本信息与控制策略信息
作业基本信息:作业基本信息是流程的主要内容之一,它用于描述调度 目标程序的各种信息,比如: Datastage 开发 Job、Informatica 开发的 session、存储过程、脚本程序等。作业基本信息主要包括:作业名称、作业对应的程序名称、作业运行所需的参数等。
控制策略信息:控制策略信息是调度核心灵魂信息,该信息决定了调度 平台在什么情况下、什么时候怎么调用作业目标程序。控制策略信息的本质为相关作业运行条件信息。比如:依赖条件、互斥条件、执行计划条件等。 流程文件系统 TASKCTL 是无数据库调度平台,对于客户化的各种流程信息是通过具有一定组织特征的文件系统来存放,并通过 XML 语言描述各类信息。
TASKCTL 流程文件系统结构如下:
由上图得知,流程的文件系统主要包括两类文件:流程总控文件与模块文件。
总控文件,主要存放流程的总控信息。一个流程必须且只有一个总控文件。
在实际 ETL 应用中,一个流程可能包含几百甚至上千个作业,使其作业基本信息与相关控制策略等信息非常庞大,为了有效管理这些信息,TASKCTL 引入模块概念,模块指具有一定关系的作业集合。对于大流程,用户可以根据作业的运行顺序、运行关系以及作业间的业务关系等信息,通过模块来划分并对流程进行重新组织,这不仅方便流程管理,同时也使流程变得更清晰,如下图所示:
在技术方面,一个模块通过一个文件来描述,且文件名称即模块名称。而一个流程包含一个或多个模块并有且只有一个主模块。主模块是流程的入口模块, 就像程序的入口函数一样。对于流程主模块,由总控信息决定。
另外,由流程文件系统结构图得知,流程模块组织关系是以主模块为根节点树状结构关系,其中父子级联关系是通过父模块中相关节点定义确定的,具体参见模块代码相关章节。
模块作为流程核心信息的基本组织单位,同时也是用户开发设计流程的主要对象。为了更好地设计流程,首先需要深入理解模块信息的组织思路。
TASKCTL 流程以模块为单位的流程核心信息组织思路是有别传统的思路,是一种创新的思路。
产品官网:www.taskctl.com
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。