首页> 中国专利> 基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置

基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置

摘要

本发明公开了一种基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置,该方法包括:接收影响分析请求,所述影响分析请求包含源流程标识、影响开始时间和影响结束时间;根据所述源流程标识,获得源流程的依赖关系列表和流程信息列表;根据所述源流程标识和所述依赖关系表中的目标流程标识,获得所述源流程的周期和所述目标流程的周期;根据所述源流程的周期、所述目标流程的周期、所述影响开始时间和所述影响结束时间,获得所述流程实例列表中包含的各个流程标识对应的流程实例列表,发送所述流程实例列表和所述流程信息列表。可选实现一键重置。

著录项

  • 公开/公告号CN105808619A

    专利类型发明专利

  • 公开/公告日2016-07-27

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201410856064.1

  • 发明设计人 黄红莉;

    申请日2014-12-31

  • 分类号G06F17/30(20060101);

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 00:12:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-06

    授权

    授权

  • 2016-08-24

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20141231

    实质审查的生效

  • 2016-07-27

    公开

    公开

说明书

技术领域

本发明涉及计算机领域,尤其涉及一种基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置。

背景技术

在大数据业务处理过程中,抽取转换与加载(ExtractTransformLoad,ETL)负责从各种数据源系统中获取数据,其支持同数据源系统的数据库或者文件系统中获取数据,经过ETL的转换、清洗、关联和汇总等逻辑处理,然后再根据业务要求装载到目标系统中。

ETL的统一调度模块进行工作流的定时调度,以及工作流内部任务的调度执行。

同一工作流的任务和任务之间隐含了依赖关系,同时不同工作流之间以及不同工作流任务之间也会存在相互依赖的关系。这里的依赖主要是数据依赖,比如要依赖的任务处理完成,下一个任务才能执行。

下面说明一个典型的业务场景:流程1为每小时调度一次,流程2要依赖流程1,要求24个小时的流程1的数据转换入库都成功后才能执行流程2。流程3依赖流程2,流程2执行成功后才能执行流程3。流程3执行完成后直接触发流程4执行。对于上述任务的依赖和触发,归根结底都是数据依赖。当依赖的数据发生变化要重新执行的时候,相应的会影响后续任务,后续任务需要能够依次从指定节点开始执行。

在运维过程中,如果发现2天前的原始数据有问题,需要重传数据到流程1的数据库中,此时重传的数据需要要重新处理,以及直接依赖流程2或者间接依赖流程3,4这部分数据的流程都需要重新运行。

1,重传数据对应的流程以及其中受影响的任务状态要重置,然后从该流程的指定任务恢复执行。

2,然后根据流程配置中配置依赖任务,来找到第一层依赖,可能会找到多个流程,针对每个流程找到对应周期,从流程的指定任务开始重置状态,然后恢复执行。

3,针对2中找到的每个流程,重复查找后续第一层依赖流程或者任务,然后针对找到的每个流程找到对应周期,从流程的指定任务开始重置状态,然后恢复执行。

4,重复第三步,一直到所有影响的流程都执行完成。

上述数据处理过程中,会存在如下问题:基本上从数据源采集过来的数据都是基本数据,那么这部分基本数据或者XDR数据或多或少都会影响后续的其他流程。国内某个局点,最重要的流程数据A,后续直接影响或者间接影响的流程达到100多个,此时当这个流程数据A的数据有问题,重传后,这一天的维护操作就是在重做相应任务上了。这使得其操作太过于复杂,维护难度很高,在维护过程中,有可能会存在遗漏的情况,导致数据结果不一致,由于依赖关系错综复杂,操作中如果不小心的话,有可能会导致部分任务没有被重置,导致数据不完整。

发明内容

针对上述问题,本发明的目的在于提供一种能够一键重做的基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置。

第一方面,本发明提供一种基于影响分析的任务重做的方法,所述方法应用在影响分析计算装置中,具体包括:

接收影响分析请求,所述影响分析请求包含源流程标识、影响开始时间和影响结束时间;

根据所述源流程标识,获得源流程的依赖关系列表和流程信息列表,其中所述依赖关系列表包含源流程标识、目标流程标识以及后续流程标识,所述流程信息列表包含源流程标识、源任务标识、所述目标流程标识、所述目标任务标识、所述后续流程标识和所述后续任务标识,所述源任务为所述源流程包含的任务,所述目标流程为所述源流程或所述源任务直接所影响的流程,所述目标任务为所述目标流程包含的任务,所述后续流程为所述目标流程或所述目标流程包含的任务直接影响的流程,所述后续任务为所述后续流程包含的任务;

根据所述源流程标识和所述依赖关系表中的目标流程标识,获得所述源流程的周期和所述目标流程的周期;

根据所述源流程的周期、所述目标流程的周期、所述影响开始时间和所述影响结束时间,获得所述流程实例列表中包含的各个流程标识对应的流程实例列表,其中,所述流程实例列表包含流程名、流程标识、流程实例标识、执行状态和流程的起止时间,所述起止时间包含开始时间和结束时间;

发送所述流程实例列表和所述流程信息列表。

在第一方面的第一种可能的实现方式中,所述根据所述源流程标识,获得源流程的依赖关系列表和流程信息列表,具体包括:根据所述源流程标识,获得从影响起始时间到影响结束时间之间的源流程所影响的流程和任务的影响关系列表,所述影响关系列表包括源流程标识、源任务标识、目标流程标识和目标任务标识;根据所述源流程标识,获得源流程自身内部的任务影响列表,所述任务影响列表包含所述源流程包含的一个以上的源任务标识;根据所述影响关系列表和任务影响列表,获取所述源流程的依赖关系列表和流程信息列表。

结合第一方面的第一种可能的实现方式中,第一方面的第二种可能实现的方式中,所述根据所述源流程标识,获得源流程自身内部的任务影响列表,所述任务影响列表包含所述源流程包含的一个以上的源任务标识,具体包括:当所述影响分析请求还包括源任务标识,获得所述源任务自身及其在所述源流程内部的后续任务的任务影响列表,所述任务影响列表包括所述源任务标识,和所述后续任务标识。

在第一方面的第三种可能的实现方式中,所述根据所述源流程的周期、所述目标流程的周期、所述影响开始时间和所述影响结束时间,获得所述流程实例列表中的源流程的流程实例列表和所述流程实例列表中的目标流程的流程实例列表,具体包括:当所述源流程周期和所述目标流程的调度周期相同,根据所述源流程的影响开始时间和所述影响结束时间,获取所述源流程的执行状态和所述目标流程的执行状态;当目标流程的周期比源流程的周期小,根据所述源流程的影响开始时间和所述影响结束时间,获取所述源流程的执行状态和从影响开始时间到当前时刻之间所有目标流程的周期的目标流程的执行状态;当所述目标流程的周期比源流程的周期大,根据所述影响开始时间和影响结束时间,获取所述目标流程的数据时间,获取所述源流程的执行状态和所述数据时间时的所述目标流程的执行状态。。

在第一方面的第四种可能的实现方式中,所述发送所述流程实例列表和所述流程信息列表,具体包括:向所述一键重置装置发送所述流程实例列表和所述流程信息列表,以便于所述一键重置装置进行任务重做;或者展示所述流程实例列表和所述流程信息列表。

第二方面,本发明提供一种基于影响分析的任务重做的方法,所述方法应用在一键重置装置上,其包括:从影响分析计算装置中获得影响分析请求的流程实例列表和流程信息列表,将流程实例表中和流程信息列表中对应的任务依赖状态设置为失效,其中,所述流程实例列表包含流程名、流程标识、流程实例标识、执行状态和流程的起止时间,所述起止时间包含开始时间和结束时间;根据流程定义,获取所述流程信息列表中各个流程中最先开始执行的任务,得到所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务;按照所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务,重新开始执行源流程。

第三方面,本发明提供一种影响分析计算装置,包括:

接收单元,用于接收影响分析请求,所述影响分析请求包含源流程标识、影响开始时间和影响结束时间;

关系列表获得单元,用于根据所述源流程标识,获得源流程的依赖关系列表和流程信息列表,其中所述依赖关系列表包含源流程标识、目标流程标识以及后续流程标识,所述流程信息列表包含源流程标识、源任务标识、所述目标流程标识、所述目标任务标识、所述后续流程标识和所述后续任务标识,所述源任务为所述源流程包含的任务,所述目标流程为所述源流程或所述源任务直接所影响的流程,所述目标任务为所述目标流程包含的任务,所述后续流程为所述目标流程或所述目标流程包含的任务直接影响的流程,所述后续任务为所述后续流程包含的任务;

周期获得单元,用于根据所述源流程标识和所述依赖关系表中的目标流程标识,获得所述源流程的周期和所述目标流程的周期;

实例列表获得单元,用于根据所述源流程的周期、所述目标流程的周期、所述影响开始时间和所述影响结束时间,获得所述流程实例列表中包含的各个流程标识对应的流程实例列表,其中,所述流程实例列表包含流程名、流程标识、流程实例标识、执行状态和流程的起止时间,所述起止时间包含开始时间和结束时间;

发送单元,用于发送所述流程实例列表和所述流程信息列表。

在第三方面的第一可能实现方式中,所述关系列表获得单元,具体用于根据所述源流程标识,获得从影响起始时间到影响结束时间之间的源流程所影响的流程和任务的影响关系列表,所述影响关系列表包括源流程标识、源任务标识、目标流程标识和目标任务标识;根据所述源流程标识,获得源流程自身内部的任务影响列表,所述任务影响列表包含所述源流程包含的一个以上的源任务标识;根据所述影响关系列表和任务影响列表,获取所述源流程的依赖关系列表和流程信息列表。

在第三方面的第二可能实现方式中,所述实例列表获得单元,具体用于当所述源流程周期和所述目标流程的调度周期相同,根据所述源流程的影响开始时间和所述影响结束时间,获取所述源流程的执行状态和所述目标流程的执行状态;当目标流程的周期比源流程的周期小,根据所述源流程的影响开始时间和所述影响结束时间,获取所述源流程的执行状态和从影响开始时间到当前时刻之间所有目标流程的周期的目标流程的执行状态;当所述目标流程的周期比源流程的周期大,根据所述影响开始时间和影响结束时间,获取所述目标流程的数据时间,获取所述源流程的执行状态和所述数据时间时的所述目标流程的执行状态。

第四方面,本发明还提供一种一键重置装置,包括:

设置单元,用于从影响分析计算装置中获得影响分析请求的流程实例列表和流程信息列表,将流程实例表中和流程信息列表中对应的任务依赖状态设置为失效,其中,所述流程实例列表包含流程名、流程标识、流程实例标识、执行状态和流程的起止时间,所述起止时间包含开始时间和结束时间;

重做准备单元,用于根据流程定义,获取所述流程信息列表中各个流程中最先开始执行的任务,得到所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务;

重做执行单元,用于按照所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务,重新开始执行源流程。

本发明实施例的方案中通过分析,获取到源流程直接或间接影响的所有的流程和任务,这样就可以对这些流程和任务一次性进行任务重做,从而降低运维人员的操作难度,减少手工操作步骤和降低误操作率。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种基于影响分析的任务重做的方法流程示意图;

图2是本发明实施例提供的另一种基于影响分析的任务重做的方法流程示意图;

图3是本发明实施例提供的另一种基于影响分析的任务重做的方法流程示意图;

图4是本发明实施例提供的一个具体例子的任务之间影响关系示意图;

图5是本发明实施例提供的一种影响分析计算装置的结构示意图;

图6是本发明实施例提供的一种一键重置装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例的一种基于影响分析的任务重做的方法,该方法应用在影响分析计算装置中,具体包括:

步骤101:接收影响分析请求,所述影响分析请求包含源流程标识、影响开始时间和影响结束时间;

步骤102:根据所述源流程标识,获得源流程的依赖关系列表和流程信息列表,其中所述依赖关系列表包含源流程标识、目标流程标识以及后续流程标识,所述流程信息列表包含源流程标识、源任务标识、所述目标流程标识、所述目标任务标识、所述后续流程标识和所述后续任务标识,所述源任务为所述源流程包含的任务,所述目标流程为所述源流程或所述源任务直接所影响的流程,所述目标任务为所述目标流程包含的任务,所述后续流程为所述目标流程或所述目标流程包含的任务直接影响的流程,所述后续任务为所述后续流程包含的任务;

步骤103:根据所述源流程标识和所述依赖关系表中的目标流程标识,获得所述源流程的周期和所述目标流程的周期;

步骤104:根据所述源流程的周期、所述目标流程的周期、所述影响开始时间和所述影响结束时间,获得所述流程实例列表中包含的各个流程标识对应的流程实例列表,其中,所述流程实例列表包含流程名、流程标识、流程实例标识、执行状态和流程的起止时间,所述起止时间包含开始时间和结束时间;

步骤105:发送所述流程实例列表和所述流程信息列表。

可选的,根据所述源流程标识,获得源流程的依赖关系列表和流程信息列表,具体包括:根据所述源流程标识,获得从影响起始时间到影响结束时间之间的源流程所影响的流程和任务的影响关系列表,所述影响关系列表包括源流程标识、源任务标识、目标流程标识和目标任务标识;根据所述源流程标识,获得源流程自身内部的任务影响列表,所述任务影响列表包含所述源流程包含的一个以上的源任务标识;根据所述影响关系列表和任务影响列表,获取所述源流程的依赖关系列表和流程信息列表。

可选的,根据所述源流程标识,获得源流程自身内部的任务影响列表,所述任务影响列表包含所述源流程包含的一个以上的源任务标识,具体包括:当所述影响分析请求还包括源任务标识,获得所述源任务自身及其在所述源流程内部的后续任务的任务影响列表,所述任务影响列表包括所述源任务标识,和所述后续任务标识。

可选的,根据所述源流程的周期、所述目标流程的周期、所述影响开始时间和所述影响结束时间,获得所述流程实例列表中的源流程的流程实例列表和所述流程实例列表中的目标流程的流程实例列表,具体包括:当所述源流程周期和所述目标流程的调度周期相同,根据所述源流程的影响开始时间和所述影响结束时间,获取所述源流程的执行状态和所述目标流程的执行状态;当目标流程的周期比源流程的周期小,根据所述源流程的影响开始时间和所述影响结束时间,获取所述源流程的执行状态和从影响开始时间到当前时刻之间所有目标流程的周期的目标流程的执行状态;当所述目标流程的周期比源流程的周期大,根据所述影响开始时间和影响结束时间,获取所述目标流程的数据时间,获取所述源流程的执行状态和所述数据时间时的所述目标流程的执行状态。

可选的,发送所述流程实例列表和所述流程信息列表,具体包括:向所述一键重置装置发送所述流程实例列表和所述流程信息列表,以便于所述一键重置装置进行任务重做;或者展示所述流程实例列表和所述流程信息列表。

如图2所示,本发明实施例的一种基于影响分析的任务重做的方法,方法应用在一键重置装置上,其包括:

步骤201:从影响分析计算装置中获得影响分析请求的流程实例列表和流程信息列表,将流程实例表中和流程信息列表中对应的任务依赖状态设置为失效,其中,所述流程实例列表包含流程名、流程标识、流程实例标识、执行状态和流程的起止时间,所述起止时间包含开始时间和结束时间;

步骤202:根据流程定义,获取所述流程信息列表中各个流程中最先开始执行的任务,得到所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务;

步骤203:按照所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务,重新开始执行源流程。

如图3所示,本发明实施例的一种基于影响分析的任务重做的方法,具体包括:

步骤301:影响分析计算装置接收一键重置装置发送的影响分析请求,该影响分析请求包含源流程标识、影响开始时间和影响结束时间;影响分析请求还可以包括源任务标识。

步骤302:影响分析计算装置获取影响分析请求的依赖关系列表和流程信息列表,其中所述依赖关系列表包含源流程标识、目标流程标识以及后续流程标识,所述流程信息列表包含源流程标识、源任务标识、所述目标流程标识、所述目标任务标识、所述后续流程标识和所述后续任务标识,所述源任务为所述源流程包含的任务,所述目标流程为所述源流程或所述源任务直接所影响的流程,所述目标任务为所述目标流程包含的任务,所述后续流程为所述目标流程或所述目标流程包含的任务直接影响的流程,所述后续任务为所述后续流程包含的任务。具体包括:

步骤3021,根据影响分析请求的源流程标识,从数据库中获取从影响起始时间到影响结束时间之间的该源流程所有影响的流程和任务的影响关系列表。该影响关系列表包括:源流程标识,源任务标识,目标流程标识和目标任务标识,本发明实施例中,影响分析对象可以是一个流程,此时该流程即为源流程,该源流程所影响到的流程和任务,就为目标流程和目标任务,影响分析对象也可以是一个任务,此时该任务就为源任务。本发明实施例的一个流程既可以作为源流程,也可以作为目标流程,例如:当流程2作为影响分析对象时,该流程2就为源流程,当该流程2作为影响分析对象流程1所影响的流程时,该流程2就为目标流程。同样,一个任务就可以作为源任务,由可以作为目标任务。

步骤3022,根据源流程标识,从数据库中获取源流程自身内部的任务影响列表。如果影响分析请求中包含了源任务标识,则任务影响列表包括源任务标识以及其在本流程内的该源任务的后继任务的后续任务标识。例如:比如在源流程存在以下任务依赖关系,任务1依赖任务2,任务2依赖任务3,如果源任务为任务2,则同流程内任务2的后继任务为任务3,则任务影响列表中包含了任务2和任务3;如果影响分析请求中没有包含任何源任务标识,那么就需要获取该流程内的所有任务,即任务影响列表包含了该源流程的所有任务。将源流程的任务影响列表放入到流程信息列表flowlistA,flowlistA中一开始为空,在分析过程中,将受源流程和源任务直接影响的或者间接影响的流程和任务逐渐加入。

步骤3023,根据影响关系列表和任务影响列表,获取影响分析请求的依赖关系列表和流程信息列表。

具体的:从影响关系列表中剔除掉源任务标识不为空且源任务标识不包含在任务影响列表中的所有关系,得目标流程任务匹配表,假定该目标流程任务匹配表为mapA,其中该目标流程任务匹配表的关键字(key)为目标流程标识,值(value)为目标流程中受影响的任务列表,例如:该mapA包含了{目标流程标识,目标流程中受影响的任务列表}。同时将mapA中的内容更新到流程信息列表flowlistA中,并构造依赖关系列表mapB,其中流程信息列表包含了源流程标识及其受影响的任务的任务标识和目标流程标识及其影响的任务的任务标识,依赖关系列表包含了源流程标识及其目标流程标识之间的关系信息。其中,依赖关系列表可以为{源流程1的标识:{{目标流程1的标识:{任务}};{目标流程2的标识:{任务}}};源流程2的标识:{目标流程2的标识:{任务}}}。流程信息列表具体为{流程1:{任务1;任务2;任务3}};流程2:{任务4,任务5}};{流程3:{任务5}}}。

步骤3024,根据获得的标流程任务匹配表,按照上述步骤2011-步骤2013分析mapA中的流程标识和任务标识所影响的所有目标流程和目标任务标识,最终获得最终的依赖关系列表和流程信息列表。

步骤303:根据源流程标识和依赖关系表中的目标流程标识,获得源流程的周期和目标流程的周期。并且根据源流程的影响开始时间和影响结束时间,获得每个源流程的起止时间和目标流程的起止时间,以及这段起止时间的执行状态,起止时间可以包含开始时间和结束时间,从而得到了依赖关系列表中的目标流程的流程实例列表,其中流程实例列表包含流程名、流程标识、流程实例标识、执行状态和起止时间。当然还可以把获得的每个源流程和目标流程的流程实例列表进行展示,

具体的获得源流程和目标流程的周期信息,包括:如果影响分析请求的源流程周期和目标流程的调度周期相同,或者如果目标调度计划不存在,则认为源流程周期和目标周期相同,则根据源流程的数据影响开始时间获取流程的执行状态。如果目标流程比源流程的周期小,按照小周期依赖大周期,例如:日依赖月,获取离大周期最近的那个小周期的执行状态,如果目标周期比源流程的周期大,按照大周期依赖小周期,则根据计算规则计算出大周期的数据时间,获取其流程的执行状态。

这里的周期计算方式和数据时间有相应关系,数据时间和时间先关联,比如分钟级调度,数据时间精确到分钟年月日时分;如果是月调度,数据时间体现就是年月,比如201410;对于天调度,数据时间规则为年月日比如20141001。这样在根据小周期计算大周期时,可以按直接截取获取大周期规则。在计算大周期依赖小周期时,则取按小周期截取成大周期再加1个大周期来进行处理计算。

步骤304:一键重置装置结合获得的流程实例列表和流程信息列表,将流程实例表中和流程信息列表中对应的任务依赖状态设置为失效,这样当依赖这个流程的任务执行时会一直处于等待状态。

步骤305:一键重置装置根据流程定义,获取流程信息列表中每个流程中最开始执行的任务,得到所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务。

步骤306:按照得到所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务,一键重置装置开始重新开始执行源流程。如果没有指定任务,则从输入流程的起始节点开始执行。如果有指定任务,则从指定任务开始执行。

本发明实施例的方案中通过分析,获取到源流程直接或间接影响的所有的流程和任务,这样就可以对这些流程和任务一次性进行任务重做,从而降低运维人员的操作难度,减少手工操作步骤和降低误操作率

下面以一个具体的例子来说明上述影响分析计算装置执行过程。如图4所示,假设流程F依赖流程C,流程G依赖流程E,流程B,流程C,流程D和流程E分别依赖于流程A,其中流程A为一小时调度一次,流程B,流程才,流程D,流程E和流程F为一天调度一次,流程G为一月调度,具体的流程,任务之间的依赖关系如图2所示,以及为下表1所示。

源流程源任务目标流程目标任务关系类型A任务A1B任务B依赖A任务A2C任务C依赖A任务A4D触发AE任务E依赖CF任务F依赖E任务eG依赖

流程G的任务G依赖流程E的任务e,任务e依赖于任务E,任务E依赖于整个流程A,只有等整个流程A结束后,才执行流程E的任务C。流程F的任务F依赖于整个流程C,流程B的任务B依赖于流程A的任务A1,流程C的任务C依赖于流程A的任务A2,流程D依赖于流程A的任务A4。

假定需要查看在时刻1到时刻2之间的流程A的任务A2对其它流程和任务的影响分析,即源流程为流程A,源任务为任务A2。

获取流程A所影响到的其它各流程,得到一个影响关系列表A,该影响关系列表A包括目标流程为B、C、D、E的4条记录,具体的如:{A:{B:{任务B}},{C:{任务C}},{D:{空}},{E:{任务E}}}。

获取流程A的任务A2以及任务A2后续的任务A3和任务A4,得到的任务影响列表A,包括任务影响列表A为{A:{任务A2,任务A3,任务A4}},此时流程信息列表listA中包含了上述影响任务列表A。

从影响关系列表A中剔除掉源任务标识不为空,且源任务标识不包含在任务影响列表中的所有关系,即依赖于任务A1的记录,剔除了影响关系列表A中流程B的记录,这样过滤后得到第一层级目标流程任务匹配表mapA,其中,mapA的key值分别为C,D和E,value值分别为{任务C},{空}和{任务E},即mapA为{{C:{任务C}};{D:{空}};{E:{任务E}}},同时将mapA的更新到上述流程信息列表flowlistA中,该流程信息列表包括目标流程标识和任务列表,并且构造依赖关系列表mapB,该mapB为{A:{{C:{任务C}};{D:{空}};{E:{任务E}}}},该flowlistA中包括了{A:{任务A2;任务A3;任务A3}};C:{任务C}};{D:{空}};{E:{任务E}}}。

根据mapA的信息,按照上述方法,对于流程C进行影响分析,更新flowlistA和mapB,获得了更新后的flowlistA为{A:{任务A2;任务A3;任务A3}};C:{任务C,任务c}};{D:{空}};{E:{任务E}}},以及更新mapB为{A:{C:{任务C}};{D:{空}};{E:{任务E}}},{C:{F:{任务F}}}},对于流程D进行影响分析,由于流程D不影响其它的任务和流程,因此不用更新flowlistA和mapB,对于流程E进行影响分析,更新flowlistA和mapB,获得了更新后的flowlistA为{A:{任务A2;任务A3;任务A3}};C:{任务C,任务c}};{D:{空}};{E:{任务E,任务e}}},以及更新mapB为{A:{C:{任务C}};{D:{空}};{E:{任务E}}},{C:{F:{任务F}}},{E:{G:{任务G}}}}。

按照上述方法,对每一个源流程和源任务所直接影响的和间接影响的目标流程和任务都找到,获得最终的flowlistA:{A:{任务A2;任务A3;任务A4}};{C:{任务C;任务c}};{D:{空}};{E:{任务E;任务e};{F:{任务F,任务f}};{G:{任务G,任务g}}以及mapB{A:{{C:{任务C}};{D:{空}};{E:{任务E}}}};{C:{{F:{任务}}}};{E:{{G:{任务G}}}}。

这样就可以获得了时刻1到时刻2之间的所有依赖关系列表和流程信息列表。然后根据源流程标识和依赖关系列表中的目标流程标识,获得源流程和目标流程的周期,依据时刻1和时刻2,获得上述源流程和目标流程的各个起止时间,以及对应的流程的执行状态。这里的流程的执行状态可以包括执行完成,执行失败等。

如图5所示,本发明实施例提供一种影响分析计算装置,包括:

接收单元51,用于接收影响分析请求,所述影响分析请求包含源流程标识、影响开始时间和影响结束时间;

关系列表获得单元52,用于根据所述源流程标识,获得源流程的依赖关系列表和流程信息列表,其中所述依赖关系列表包含源流程标识、目标流程标识以及后续流程标识,所述流程信息列表包含源流程标识、源任务标识、所述目标流程标识、所述目标任务标识、所述后续流程标识和所述后续任务标识,所述源任务为所述源流程包含的任务,所述目标流程为所述源流程或所述源任务直接所影响的流程,所述目标任务为所述目标流程包含的任务,所述后续流程为所述目标流程或所述目标流程包含的任务直接影响的流程,所述后续任务为所述后续流程包含的任务;

周期获得单元53,用于根据所述源流程标识和所述依赖关系表中的目标流程标识,获得所述源流程的周期和所述目标流程的周期;

实例列表获得单元54,用于根据所述源流程的周期、所述目标流程的周期、所述影响开始时间和所述影响结束时间,获得所述流程实例列表中包含的各个流程标识对应的流程实例列表,其中,所述流程实例列表包含流程名、流程标识、流程实例标识、执行状态和流程的起止时间,所述起止时间包含开始时间和结束时间;

发送单元55,用于发送所述流程实例列表和所述流程信息列表。

可选的,上述关系列表获得单元,具体用于根据所述源流程标识,获得从影响起始时间到影响结束时间之间的源流程所影响的流程和任务的影响关系列表,所述影响关系列表包括源流程标识、源任务标识、目标流程标识和目标任务标识;根据所述源流程标识,获得源流程自身内部的任务影响列表,所述任务影响列表包含所述源流程包含的一个以上的源任务标识;根据所述影响关系列表和任务影响列表,获取所述源流程的依赖关系列表和流程信息列表。

可选的,上述实例列表获得单元,具体用于当所述源流程周期和所述目标流程的调度周期相同,根据所述源流程的影响开始时间和所述影响结束时间,获取所述源流程的执行状态和所述目标流程的执行状态;当目标流程的周期比源流程的周期小,根据所述源流程的影响开始时间和所述影响结束时间,获取到从影响开始时间到当前之间所有目标流程的周期的目标流程的执行状态;当所述目标流程的周期比源流程的周期大,根据所述影响开始时间和影响结束时间,获取所述目标流程的数据时间,获取所述数据时间时的所述目标流程的执行状态。

如图6所示,本发明实施例提供的一种一键重置装置,包括:

设置单元61,用于从影响分析计算装置中获得影响分析请求的流程实例列表和流程信息列表,将流程实例表中和流程信息列表中对应的任务依赖状态设置为失效,其中,所述流程实例列表包含流程名、流程标识、流程实例标识、执行状态和流程的起止时间,所述起止时间包含开始时间和结束时间;

重做准备单元62,用于根据流程定义,获取所述流程信息列表中各个流程中最先开始执行的任务,得到所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务;

重做执行单元63,用于按照所述最先开始执行的任务所在流程实例和重做的所述开始执行的任务,重新开始执行源流程。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,简称RAM)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号