一种实时任务处理方法及其设备 【技术领域】
本发明涉及银行数据处理领域,具体而言,涉及一种实时任务处理方法及其设备。
背景技术
随着服务行业电子化进程的加速以及金融产品种类的日益增多,银行的代理业务量日趋增长。随着代理业务量的增多,银行核心系统中的代理交易量也相应增长。批量代理模式作为处理代理服务的主要模式,在业务量大量增加的情况下,现有的处理效率、处理时间无法满足用户的需求。
在现有技术一中,把每种批量代理服务都作为一类实时任务,实际执行的功能则为一个任务的实体。对于实时任务的处理,当实时任务是由单个作业执行完成时,可采用将作业长时间挂在系统的运行队列中的方式。当系统的运行队列中有实时任务存在时,系统及时处理该实时任务;当系统中的运行队列里无实时任务时,则系统采取等待的方式,直至下一个实时任务出现在运行队列里。而对于由多个作业完成的实时任务,只能采取定时提交的方式完成对于该实时任务的执行,由于采取了定时提交的方式,会造成一定时间的延误,无法满足业务的时效性。
在现有技术二中,采用外部系统来实现实时任务处理。在由外部系统来实现实时任务的处理机制中,先由外部系统(非国际商业机器公司(International Business Machines,IBM)主机系统环境)对批量数据进行分拆,然后将分拆后的数据依次提交后台服务系统进行处理。例如:对于实时性要求高的、需要批量处理数据的任务,采用批量拆联机交易(俗称联机小批量)的方法。这种机制无法根据后台服务系统的运行情况,动态调整任务的并发数,且后台服务系统无法根据自身的运行状况干预实时任务的运行,并且由于涉及数据分拆、合并等额外的处理,流程较为复杂、运行效率也比较低。
【发明内容】
本发明提供了一种实时任务处理方法及其设备,无需外部系统处理,通过直接接收由外部系统转发的任务请求,根据该任务请求进行实时任务处理,缩短了中间环节的处理时间,提高了数据准确性及处理效率,同时,由于使用至少一个实时任务触发控制器,对于由多个作业完成的实时任务,也可以实时处理,满足了业务的时效性。
为此,一方面,本发明提供了一种实时任务处理方法,包括:
实时任务生成器接收由外部系统转发的任务请求,根据该任务请求生成任务实体,并将生成的任务实体递交至实时任务等待队列中;
至少一个实时任务触发控制器扫描所述实时任务等待队列,将扫描到的任务实体触发后提交至实时任务执行控制器;
实时任务执行控制器根据所述任务实体获取实时任务参数,根据所述实时任务参数运行该任务实体。
另一方面,本发明还提供了一种实时任务处理设备,包括:
实时任务生成器,用于接收由外部系统转发的任务请求,根据该任务请求生成任务实体,并将生成的任务实体递交至实时任务等待队列中;
至少一个实时任务触发控制器,用于扫描所述实时任务等待队列,将扫描到的任务实体触发后提交至实时任务执行控制器;
所述实时任务执行控制器,用于根据所述任务实体获取实时任务参数,根据所述实时任务参数运行该任务实体。
实施本发明的一种实时任务处理方法及其设备,通过直接接收由外部系统转发的任务请求,而不需要由外部系统对批量数据进行分拆并将分拆后的数据依次提交进行处理,缩短了中间环节的处理时间,提高了数据准确性及处理效率,满足业务时效性的要求,同时,由于使用至少一个实时任务触发控制器,对于由多个作业完成的实时任务,也可以实时处理,满足了业务的时效性。
【附图说明】
图1是本发明的一种实时任务处理方法的流程图;
图2是图1中步骤S1的实施方式1的具体流程图;
图3是图1中步骤S1的实施方式2的具体流程图;
图4是图1中步骤S2的具体流程图;
图5是图1中步骤S3的具体流程图;
图6是本发明的一种实时任务处理设备的结构框图;
图7是图6中的实时任务生成器501的实施方式1的结构框图;
图8是图6中地实时任务生成器501的实施方式2的结构框图;
图9是图6中的实时任务触发控制器502的实施方式1的结构框图;
图10是图6中的实时任务触发控制器502的实施方式2的结构框图;
图11是图6中的实时任务执行控制器503的实施方式1的结构框图;
图12是图6中的实时任务执行控制器503的实施方式2的结构框图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
参考图1,是本发明的一种实时任务处理方法的流程图。由图1可知,所述方法至少包括:
S1:实时任务生成器接收由外部系统转发的任务请求,根据该任务请求生成任务实体,并将生成的任务实体递交至实时任务等待队列中;
具体而言,外部系统仅转发任务请求,不需要对批量数据进行分拆并将分拆后的数据依次提交进行处理。
S2:至少一个实时任务触发控制器扫描所述实时任务等待队列,将扫描到的任务实体触发后提交至实时任务执行控制器;
S3:实时任务执行控制器根据所述任务实体获取实时任务参数,根据所述实时任务参数运行该任务实体。
实施本发明的一种实时任务处理方法,通过接收由外部系统转发的任务请求,无需外部系统处理,缩短了中间环节的处理时间,提高了数据准确性及处理效率。
下面以实时代扣付为例,具体介绍本发明实施例的实时任务处理方法,由上述描述可知,实时任务处理方法至少包括三个阶段,即:任务生成阶段、任务提交阶段、任务执行阶段,分别对应步骤S1、S2、S3。
任务生成阶段
在任务生成阶段,上述步骤S1可以通过两种实施方式实现,下面将分别介绍:
实施方式1:如图2所示,步骤S1包括:
S11:实时任务生成器接收由外部系统转发的任务请求,所述任务请求以实时代扣付为例,具体包括了与实时代扣付相关的报文数据、文件等信息;
S12:实时任务生成器生成任务实体,具体包括:
实时任务生成器根据所述任务请求获取任务类属性、实时任务触发控制器的状态信息、调用接口信息;
其中,任务类属性表如表1所示:
表1
栏位名 栏位说明 任务代码 RTAG0001 任务功能摘要 任务所属分组 01 任务暂停使用 N BEFORE APPLICATION程序 暂无 AFTER APPLICATION程序 暂无 JCL CLASS值 E 任务作业控制流(CTL)模版存 放文件 ISDADCF.RTCM.CTL.RTAG0001.VK 作业模版存放路径 CCBSAPP.RTCM.JOB.JCL 维护柜员 维护时间
此处的实时任务触发控制器的状态信息是指能够处理该任务实体的任务触发控制器的开启状况。调用接口信息如表2所示:
表2
栏位名 栏位说明 任务功能代码 ′1′-申请任务 ′2′-查询任务 ′3′-发起方撤销任务 ′4′-完成任务 ′5′-应用程序中断 ′6′-转定时处理 省行代码 上海行的代扣付业务为SH 任务请求摘要 自定义信息 输入参数栏位 格式自定义,以逗号分割。 任务递交期限 从任务请求至任务发起,若超过此 期限则任务不发起,作废除处理。 任务递交期限单位 天、小时
实时任务生成器根据所述任务请求、任务类属性、实时任务触发控制器的状态信息、调用接口信息生成任务实体,生成的任务实体属性表参见表3。
表3
栏位名 栏位说明 任务序号 109182084804232 所属任务代码 RTAG0001 所属任务分组 01 任务请求摘要 继承任务类属性,可OVERRIDE 省行代码 上海行的代扣付业务为SH 输入参数栏位 格式自定义,以逗号分割。
栏位名 栏位说明 任务递交期限 从任务请求至任务发起,若超过此期 限则任务不发起,作废除处理。 任务递交期限单位 天、小时 任务状态值 等待处理 任务状态码 SPACE-正常 *****-信息码 任务状态信息 接受请求时间 任务递交时间 任务完成时间 任务发起柜员 任务管理器编号 触发该任务实体的任务管理器编号
S13:实时任务生成器将生成的任务实体递交至实时任务等待队列中。实时任务等待队列中的任务实体均为等待处理的状态,直至实时任务触发控制器对该任务实体进行处理。
实施方式2:如图3所示,所述步骤S1除了包括上述的步骤S11、S12、S13之外,在S11和S12之间还包括:
S14:实时任务生成器检查该任务请求的有效性,若该任务请求对应的实时任务触发控制器开启,则该任务请求有效,执行步骤S12,否则该任务请求视为无效,返回步骤S11。
任务提交阶段
如图4所示,在任务提交阶段,步骤S2包括:
S21:至少一个实时任务触发控制器扫描实时任务等待队列;
具体而言,根据调度条件扫描所述实时任务等待队列,获取符合该调度条件的任务实体,所述调度条件指任务的当前状态及其任务参数;
S22:至少一个实时任务触发控制器将扫描到的任务实体触发,其中,触发前的任务属性表参见表4,触发后的任务属性表参见表5。
表4
栏位名 栏位说明 任务递交期限 从任务请求至任务发起,若超过此 期限则任务不发起,作废除处理。 任务递交期限单位 天、小时 任务状态值 由等待处理改为处理中 任务递交时间 任务处理时间 任务管理器编号 01
实时任务被触发时,实时任务触发控制器根据从任务实体中获取的模板作业控制流文件制作出实际作业控制流文件,实时任务执行控制器根据所述实际作业控制流文件组装出起始控制作业递交至实时任务执行控制器运行。
如表5所示,在触发任务实体之后,触发控制器修改任务实体属性中执行状态、任务递交时间、任务管理器编号等属性,并修改其相应的系统。
表5
栏位名 栏位说明 任务代码 RTAG0001 BEFORE APPLICATION程序 AFTER APPLICATION程序 JCL CLASS值 E 任务作业控制流 (CTL)模版存放文件 ISDADCF.RTCM.CTL.RTAG0001.VK 作业模版存放路径 CCBSAPR.RTCM.JOB.JCL
其中,前应用程序(BEFORE APPLICATION)指定了在批量任务开始之前,需要运行的程序,而后应用程序(AFTERAPPLICATION)则指定了在批量任务结束之后,需要运行的程序。
参见表6,在作业流运行时,实时任务执行控制器可以向任务触发控制器所属的系统日志文件中写入信息(如表6中的任务状态值等)并且可以维护、修改任务实体的属性。
表6
栏位名 栏位说明 任务序号 109182084804232 任务状态值 调度时状态为处理中, 出错时状态为处理中断, 任务正常结束时为处理完毕 任务状态码 调度时及任务正常结束时为空;出 错时为具体报错码 任务状态信息 出错时具体的出错信息,便于定位 原因 任务完成时间 任务的正常结束时间
当作业流完成时,触发控制器会通过INTRDR方式递交一个由JES2子系统来执行的结束作业,该结束作业用于实现以下功能:
修改实时任务触发控制器的动态属性;
执行AFTER APPLICATION程序;
修改任务实体信息。
修改前的实时任务触发控制器的动态属性参见表7,修改后的实时任务触发控制器的动态属性参见表8,修改前的任务实体信息参见表9,修改后的任务实体信息参见表10。
表7
栏位名 栏位说明 目前并行任务数 如最大允许5个任务并发,此时已 有2个任务运行
表8
栏位名 栏位说明 目前并行任务数 此时任务数由2变为3
表9
栏位名 栏位说明 任务序号 109182084804232 任务状态值 处理中 任务完成时间 空
表10
栏位名 栏位说明 任务序号 109182084804232 任务状态值 处理完毕 任务完成时间 此时记录任务处理结束时间
S23:实时任务触发控制器将触发后的任务实体递交至实时任务执行控制器。
在本发明的另一种实施方式里,在S2的步骤中,还包括:
A、监视各任务实体的运行状态,即根据表11所示的实时任务触发控制器的静态属性,记录每个任务实体的状态,并且,对实时任务触发控制器中的任务实体的运行情况进行统计,即统计出当前实时任务触发控制器中,已完成多少任务实体,有多少个任务实体在处理中,并且整个任务实体信息档中,有多少任务实体还未触发。
表11
栏位名 栏位说明 任务触发控制器编号 Key 系统日志记录文件实体 任务触发控制器记录平台日志的文件名
B、对实时任务触发控制器进行控管
在批处理任务结束后,按照需要开启的实时任务触发控制器的数量组装出若干个实时任务触发控制器;
根据实时任务的处理时效性以及业务的分布,开启全部实时任务触发控制器;
在批处理任务开始前,将目前运行的实时任务触发控制器全部关闭;
在系统资源紧张等情况下,指定每组任务实体需要关闭的实时任务触发控制器的数量,关闭实时任务触发控制器。
实时任务触发控制器的关闭手段为:在任务实体信息表中插入或维护一条特殊记录,当实时任务触发控制器扫描到该记录时,则做结束处理。实时任务触发控制器首先扫描结束标志,再触发任务实体,以保证任务触发控制器关闭动作的时效性。
C、管理任务实体的等待队列
当任务请求被接受后,如表12所示的任务明细表中便有了需要执行的任务信息。当多个任务请求发生时,便会形成任务实体的等待队列。
表12
栏位名 栏位说明 任务序号 KEY值(带时间) 所属任务代码 继承任务类属性 所属任务分组 继承任务类属性 任务状态值 当前执行状态,等待处理、处理中、 处理完毕、处理中断、废除 任务管理器编号 触发该任务实体的任务管理器编号
任务实体是按申请时间的先后形成等待队列的,并且按照所属的任务类分组。每一个实时任务触发控制器只处理某一组的任务实体,而一组任务实体则可以由多个实时任务触发控制器处理。每个实时任务触发控制器同与其功能相同的实时任务触发控制器协同工作,管理及触发归属其管理组的任务实体。
当实时任务触发控制器获取任务实体时,通过预先设定的次索引获取当前第一个等待处理的任务实体,并在该任务实体上设置排他锁,将任务状态由等待处理更改为处理中;其他实时任务触发控制器获取所述第一个等待处理的任务实体之后的任务实体,并设置排他锁,将任务状态由等待处理更改为处理中。
当任务实体处理完毕并触发后,实时任务触发控制器则继续获取后续可用的任务实体,并在该任务实体上设置排他锁,将任务状态由等待处理更改为处理中。
当所述实时任务触发控制器触发完所有的任务实体后,按照IDLE机制,进入IDLE状态。
D、控制与管理任务实体并发数
将所述实时任务触发控制器的并行任务数加1,并判断所述并行任务数是否达到预设阈值;
当判断为否时,所述实时任务触发控制器获取并触发下一任务实体,返回执行将所述实时任务触发控制器的并行任务数加1的步骤;
当判断为是时,所述实时任务触发控制器停止获取下一任务实体,并按照IDLE机制,进入IDLE状态;
当所述任务实体运行结束时,将所述并行任务数减1,该实时任务触发控制器从IDLE状态恢复至并行任务数未满的状态。
需要说明的是,在本发明的实施例中,上述步骤A、B、C、D可以同时执行且没有固定的执行顺序,在本发明的又一种实施方式中,可以执行步骤A、B、C、D中的一个或者多个。
任务执行阶段
在任务执行阶段,步骤S3由下述步骤S31、S32、S33组成,下面将结合图5分别详细介绍。
S31:实时任务执行控制器获取实时任务参数
实时任务触发控制器接收到需要处理的任务实体时,将该次任务实体的诸如对应的任务代码、实时代扣付的上送主机文件名、任务序号、代理编号、任务时间、任务所属省行号等信息递交实时任务执行控制器。通过该次任务实体的任务代码得到该任务实体的任务类,从任务类得到该次任务使用的模板作业控制流文件名、调用作业所在库、作业运行等级、起始调度作业名、批量处理或单个作业处理标志等相关参数,各参数的具体形式以代扣付为例参考表13。
表13
参数名 参数值长度 参数含义 ONLTASKF 44个字符以内 实时调度参数文件 CTLLIB 44个字符以内 实时任务调度控制流文件,根据 CTLFLOW来生成 RTDNO CHAR(15) 任务编号 BRHCOD CHAR(02) 省行代码 HOSTFNAM 44个字符以内 上送主机文件名 AGBATNO CHAR(15) 代理编号 REQDATE CHAR(06) 任务请求日期 JOBPREV CHAR(07) 作业名前缀,第一位为‘U’ CENTFLAG CHAR(1) 北京、上海数据中心标识(值为 N/S/空格)
参数名 参数值长度 参数含义 TEMPFILE CHAR(16) 中间处理文件的部分内容,值为R +‘6位日期’+‘.’+CENTFLAG+ ‘代理编号后7位’(如果CENTFLAG 为空,则置为R) CNTLFILE CHAR(17) 调度控制文件(ONLTASKF)的 部分内容,值为‘T’+ ‘任务编号第2位开始的7位’+ ‘.T’+‘任务编号第9位开始的7位’ CTLFLOW 44个字符以内 实时任务控制流模板文件 JOBCLASS CHAR(07) 作业运行等级,初始值CLASS=E 实时批量代理作业使用的 JOBCLASS为E JOBPDS 44个字符以内 实时任务模板作业存放库 JOB1ST CHAR(08) 起始调度作业名
S32:实时任务作业调度准备
(1)对于只需单个作业来完成的实时任务:调用实时任务执行控制器,传入任务信息。
(2)对于需要通过批量作业完成的实时任务:
首先,对作业进行状态初始化
建立该次任务的实际作业控制流文件,文件的命名与该次任务序号相关,复制模板作业控制流文件中的作业执行流。模板作业控制流文件的格式如表14所示:
表14
栏位名 栏位属性 栏位说明 CTL名 CHAR 8 键值,如其中存在的某个CTL 为UAGRTC01 调用的作业名 CHAR 8 UAGRTC01
栏位名 栏位属性 栏位说明 作业运行状态 CHAR 1 P等待运行 R正在运行 F运行结束 E作业出错 初始时为P 作业开始运行时间 9(6) 记录作业执行时间 作业结束时间 9(6) 作业完成时间 作业正常运行时间 9(6) 用于检查作业中文件不存在导 致JCL ERROR情况 预估作业正常完成的时间,如 10分钟 作业出错状态 CHAR 1 用于检查语法错导致JCL ERROR的情况N为初始值 O为未发生语法错 如果作业运行状态为R,间隔一 定时间后出错状态为N时,则表 示可能发生了语法错的情况 如果作业运行状态为R,当前时 间减去作业开始时间>作业正 常运行时间,且作业出错状态 为O,则表示可能发生了文件不 存在导致的JCL ERROR 初始值为N 作业前键数 9(2) 前键作业都完成后,才能 运行当前作业 如UAGRTC01的前键作业 数为2 作业后键数 9(2) 表示当前作业运行结束后,后 键作业才有可能开始运行 如UAGRTC01的前键作业 数为1
栏位名 栏位属性 栏位说明 已运行作业前键数 9(2) 已完成的前键作业数 实时变更,当完成一个前键作 业数累加1 作业运行等级 CHAR 1 单独指定作业运行的CLASS等 级 目前代扣付的作业运行等级都 为E 作业出错原因 CHAR 20 FILLER CHAR 20 备用字段
其中,作业状态初始化包括:
作业运行状态改为P,作业开始时间置为000000,作业结束时间置为000000,作业出错状态置为N,已运行作业前键数改为00。
其次,触发任务初始作业及参数传递
触发模板作业控制流文件中的第一个作业(即作业前键数为00的模板作业控制流文件,如作业A),将任务参数(任务序号、根据模板生成的模板作业控制流文件名、作业存放库等)传入作业执行控制器,作业执行控制器运行作业A(此时记录作业A的开始运行时间,作业运行状态改为正在运行),开始实时任务作业的模板作业控制流文件调度处理。根据任务序号,修改该任务的运行状态为开始。
S33:实时任务执行控制器运行该任务实体
(1)采用单个作业完成所述任务实体
对于单个作业的处理,不涉及模板作业控制流文件的操作,此时实时任务执行控制器起到的作用是检查该作业是否非正常结束,当该作业非正常结束时,将信息写入作业信息存放文件中,实时任务管理和提交平台通知操作员该任务实体异常。
(2)采用批量作业完成所述任务实体
作业正常运行结束后,将所述作业状态值修改为完成,依次检查该任务实体的后键作业,如果某后键作业中的已运行作业前键数+1等于作业前键数,则该后键作业可以运行,实时任务执行控制器根据任务实体生成运行作业,并通过写入INTRDR的方式将该任务实体交由JES2子系统来执行;
如果已运行作业前键数+1不等于作业前键数,则该后键作业不可以运行。
依次调度,直到模板作业控制流文件中某作业的后键数为00,则表示该次实时任务全部处理完毕。
在本发明实施例中,步骤S3除了上述步骤S31、S32、S33之外,还包括:
在作业执行过程中,当有作业出现错误时,中止该作业对应的任务实体,将作业控制流实体文件中的作业状态改为出错状态。
本发明实施例通过采用任务调度和流程控制的模式,减少了中间环节的处理,提高了数据准确性及处理效率,满足业务时效性的要求,实现了根据系统情况及参数配置调控实时任务的触发及运行,使用较小的系统资源对实时任务中的作业流进行自动调度和管理。
以上结合附图详细阐述了本发明的一种实时任务处理方法的具体实施方式,下面将结合附图详细说明本发明的一种实时任务处理设备的技术方案。
图6示出了本发明的一种实时任务处理设备的结构框图,所述实时任务处理设备包括:
实时任务生成器501,用于接收由外部系统转发的任务请求,根据该任务请求生成任务实体,并将生成的任务实体递交至实时任务等待队列中;
至少一个实时任务触发控制器502,用于扫描所述实时任务等待队列,将扫描到的任务实体触发后提交至实时任务执行控制器503;
所述实时任务执行控制器503,用于根据所述任务实体获取实时任务参数,根据所述实时任务参数运行该任务实体。
图7和图8是本发明实施例的一种实时任务处理设备中的实时任务生成器的结构框图,所述实时任务生成器至少可以包括以下两种实施方式:
实施方式1:如图7所示,所述实时任务生成器包括:
获取模块5011,用于根据所述任务请求获取任务类属性、实时任务触发控制器的状态信息、调用接口信息;
生成模块5012,用于根据所述获取模块5011的任务请求、任务类属性、实时任务触发控制器的状态信息、调用接口信息生成任务实体。
实施方式2:如图8所示,所述实时任务生成器除了上述获取模块5011和生成模块5012之外,还包括:
检查模块5013,用于实现以下功能:检查该任务请求的有效性,若该任务请求对应的实时任务触发控制器开启,则该任务请求有效,启用生成模块5012,否则该任务请求视为无效,所述实时任务生成器停止对于该任务请求的操作,重新接收由外部系统转发的任务请求。
下面结合附图详细介绍本发明实施例的一种实时任务处理设备中的实时任务触发控制器。
参考图9,是实时任务触发控制器的实施方式1的结构框图,所述实时任务触发控制器包括:
扫描模块5021,用于根据调度条件扫描所述实时任务等待队列,获取符合调度条件的任务实体;
触发模块5022,用于根据扫描模块5021获取的任务实体,从所述模板作业控制流文件制作出实际作业控制流文件,根据所述实际作业控制流文件组装出起始控制作业;
提交模块5023,用于将触发模块5022触发后的任务实体提交至实时任务执行控制器。
参考图10,是实时任务触发控制器的实施方式2的结构框图,实时任务触发控制器除了扫描模块5021、触发模块5022、提交模块5023之外,还包括监视模块5024,用于监视任务实体的运行状态,具体可实现如下功能:
根据实时任务触发控制器的静态属性,记录每个任务实体的状态;
对实时任务触发控制器中的任务实体的运行情况进行统计。
可选地,实时任务触发控制器除了包括上述模块之外,还包括控管模块5025,用于对实时任务触发控制器进行控管,具体可实现如下功能:
在批处理任务结束后,按照需要开启的实时任务触发控制器的数量组装出若干个实时任务触发控制器;
根据实时任务的处理时效性以及业务的分布,开启全部实时任务触发控制器;
在批处理任务开始前,将目前运行的实时任务触发控制器全部关闭;
在系统资源紧张等情况下,指定每组任务实体需要关闭的实时任务触发控制器的数量,关闭实时任务触发控制器。
可选地,实时任务触发控制器除了包括上述模块之外,还可以包括队列管理模块5026,用于对任务实体的等待队列进行管理,具体可实现如下功能:
通过预先设定的次索引获取当前第一个等待处理的任务实体,并在该任务实体上设置排他锁,将任务状态由等待处理更改为处理中,其他实时任务触发控制器获取所述第一个等待处理的任务实体之后的任务实体,并设置排他锁,将任务状态由等待处理更改为处理中;
当实时任务触发控制器处理完所有的任务实体时,按照IDLE机制,进入IDLE状态。
可选地,实时任务触发控制器除了包括上述模块之外,还包括并发数管理模块5027,用于对任务实体并发数进行控制与管理,具体可实现如下功能:
将所述实时任务触发控制器的并行任务数加1,并判断所述并行任务数是否达到预设阈值,当判断为否时,获取并触发下一任务实体,返回执行将所述实时任务触发控制器的并行任务数加1的步骤;当判断为是时,停止获取下一任务实体,并按照IDLE机制,进入IDLE状态;
下面结合附图详细介绍本发明实施例的一种实时任务处理设备中的实时任务执行控制器。
参考图11,是实时任务执行控制器实施方式1的结构框图,所述实时任务执行控制器包括:
起始控制作业运行模块5031,用于运行所述起始控制作业,根据所述实时任务参数生成该任务实体使用的参数文件和作业控制流实体文件;
实时任务作业执行模块5032,用于根据起始控制作业运行模块5031的作业控制流实体文件中的执行顺序和所述参数文件中的信息,依次执行该实时任务的作业。当采用单个作业完成所述任务实体时,实时任务执行控制器检查该任务实体是否正常结束,当所述任务实体不是正常结束时,将该任务实体写入作业信息存放文件中,实时任务执行控制器通知操作员该任务实体异常。当采用批量作业完成所述任务实体时,将所述任务实体状态值修改为完成,依次检查该任务实体的后键作业,当所述后键作业中的已运行作业前键数+1等于作业前键数时,运行该后键作业,实时任务执行控制器根据任务实体生成运行作业,并通过写入INTRDR的方式将该任务实体交由JES2子系统来执行,当已运行作业前键数+1不等于作业前键数时,停止操作。
参考图12,是实时任务执行控制器的实施方式2的结构框图,其中,实时任务执行控制器除了起始控制作业运行模块5031、实时任务作业执行模块5032还包括:
异常处理模块5033,用于在作业执行过程中,当有作业出现错误时,中止该作业对应的任务实体,将作业控制流实体文件中的作业状态改为出错状态。
需要说明的是,在本发明的实施方式中,实时任务处理设备是运行在IBM主机系统中,实时任务的运行环境是Z/OS的JES2子系统。本领域的技术人员应该理解,上述是本发明的优选实施例而已,在本发明所述的原理上做的等同变换亦在本发明表述的范围之内。
综上所述,本发明的一种实时任务处理方法、实时任务处理设备,通过外部系统转发任务请求,而不需要由外部系统对批量数据进行分拆、将分拆后的数据依次提交进行处理,缩短了中间环节的处理时间,提高了数据准确性及处理效率,满足业务时效性的要求,而且通过采用任务调度和流程控制的模式,实现了对于由多个作业构成的任务实体的实时处理,可根据系统情况及参数配置调控实时任务的触发及运行,使用较小的系统资源对实时任务中的作业流进行自动调度和管理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所公开的仅为本发明的具体实施方式,仅用于对本发明进行举例说明,不能以此限定本发明之保护范围,本领域技术人员在不脱离本发明实质的前提下可以进行各种修改、变化或替换,因此,依照本发明所作的各种等同变化,仍属于本发明所涵盖的范围。