掌桥专利:专业的专利平台
掌桥专利
首页

一种任务执行方法及装置

文献发布时间:2023-06-19 19:18:24


一种任务执行方法及装置

技术领域

本发明涉及执行处理领域,尤其涉及一种任务执行方法及装置。

背景技术

在项目开发过程中,会根据功能的需要,开发流程引擎,其中流程引擎是用于驱动并流转由业务设定的固定流程。

现阶段,流程引擎一般是按照串行的方式依次执行业务上设定的多个固定流程,若该流程引擎在执行某一个流程发生异常时,则直接终止执行,且前面执行完成的流程无法恢复,这样的话,会导致执行效率较低。

综上,如何实现提高流程引擎的执行效率,是当前亟需解决的技术问题。

发明内容

本发明实施例提供一种任务执行方法及装置,用以解决现有技术中流程引擎的执行效率较低的问题。

第一方面,本发明实施例提供一种任务执行方法,包括:流程引擎确定目标任务的目标流程树,所述目标流程树包括多个节点;所述多个节点包括执行节点和叶子节点,所述执行节点包括并行执行节点和/或串行执行节点;所述并行执行节点用于标识属于所述并行执行节点的下一层级的节点的执行方式为并行执行;所述串行执行节点用于标识属于所述串行执行节点的下一层级的节点的执行方式为串行执行;所述叶子节点用于表征需要执行的流程步骤;所述流程引擎遍历且执行所述目标流程树的各层级的各个子节点,所述子节点为执行节点或叶子节点。

本发明实施例中,流程引擎通过将目标任务确定为目标流程树的形式,从而实现确定各个子节点的执行方式,其中执行方式包括串行执行和并行执行,进而实现流程引擎按照并行和串行混合的方式执行目标流程树的各个子节点,加快执行速度,提高流程引擎的执行效率。

可选的,所述流程引擎遍历且执行所述目标流程树的各层级的各个子节点,包括:所述流程引擎针对所述目标流程树中的任一并行执行节点,为所述并行执行节点下的每个子节点启动对应的协程来执行对应的子节点。

本发明实施例中,流程引擎根据执行节点的执行方式为并行执行,则可以对并行执行节点的每个子节点启动对应的协程来执行对应的子节点,从而实现通过并行执行子节点来提高流程引擎的执行速度,进而提高流程引擎的执行效率。

可选的,目标任务中包括多个实例;所述目标任务中包括多个实例;所述多个实例中属于同一流程步骤的子节点属于同一层级下且并行执行;任一实例的各流程步骤的所述叶子节点具有表征所属实例的唯一标识。

本发明实施例中,通过并行执行目标任务中对个实例的同一流程步骤的子节点,可以提高流程引擎的执行速度,进而提高流程引擎的执行效率。

可选的,所述流程引擎遍历且执行所述目标流程树的各层级的各个子节点之后,还包括:所述流程引擎针对需数据传递的子节点,将所述子节点的执行结果存储至目标数据表;所述流程引擎遍历且执行所述目标流程树的各层级的各个子节点之前,还包括:所述流程引擎针对需获取数据的子节点,从所述目标数据表获取所需的执行结果。

本发明实施例中,流程引擎通过在执行各子节点之后,将子节点的执行结果存储至目标数据表中,从而便于后续需要获取上述执行完毕的子节点的执行结果的子节点,可以较快速的从目标数据表中获取所需的执行结果,进而方便快速的实现子节点与子节点之间的数据交互。

可选的,所述流程引擎遍历且执行所述目标流程树的各层级的各个子节点之后,还包括:所述流程引擎将所述各子节点的执行状态和所述目标数据表记录至所述目标数据库。

可选的,还包括:若任一子节点的执行状态为异常状态,则从所述目标数据库中调用所述目标流程树中已完成的所有节点的执行结果和已完成的所有节点的执行状态,根据所述子节点的处理方案执行所述目标任务。

本发明实施例中,通过从目标数据库中调用目标流程树中已完成的所有节点的执行结果和已完成的所有节点的执行状态,可以实现恢复流程树的执行现场,便于后续根据子节点的处理方案执行目标任务,从而提高流程引擎的执行效率。

可选的,流程引擎确定目标任务的目标流程树,包括:流程引擎基于目标任务的各流程步骤,确定目标任务的初始流程树;流程引擎针对初始流程树中的任一串行执行节点,确定串行执行节点的各子节点的优先级;若第一子节点的优先级高于第二子节点的优先级,且第一子节点与第二子节点在执行顺序上无依赖关系,则在初始流程树中设置第一子节点位于第二子节点之前,从而得到目标流程树,其中,优先级是根据子节点的异常概率确定的,异常概率越高优先级越高。

本发明实施例中,通过根据子节点的异常概率,确定流程树的各叶子节点的优先级,从而实现流程引擎在执行流程树的各叶子节点中,可以快速的发现异常状态的叶子节点,进而实现提高相应客户的速度,提高客户的体验感。

可选的,流程引擎确定目标任务的目标流程树之前,还包括:接收业务系统通过目标接口调用流程引擎,从而获得目标任务。

第二方面,本发明实施例提供一种任务执行装置,包括:获取单元,用于流程引擎确定目标任务的目标流程树,所述目标流程树包括多个节点;所述多个节点包括执行节点和叶子节点,所述执行节点包括并行执行节点和/或串行执行节点;所述并行执行节点用于标识属于所述并行执行节点的下一层级的节点的执行方式为并行执行;所述串行执行节点用于标识属于所述串行执行节点的下一层级的节点的执行方式为串行执行;所述叶子节点用于表征需要执行的流程步骤;处理单元,用于所述流程引擎遍历且执行所述目标流程树的各层级的各个子节点,所述子节点为执行节点或叶子节点。

可选的,处理单元具体用于:所述流程引擎针对所述目标流程树中的任一并行执行节点,为所述并行执行节点下的每个子节点启动对应的协程来执行对应的子节点。

可选的,处理单元还包括:所述目标任务中包括多个实例;所述多个实例中属于同一流程步骤的子节点属于同一层级下且并行执行;任一实例的各流程步骤的所述叶子节点具有表征所属实例的唯一标识。

可选的,处理单元还包括:所述流程引擎针对需数据传递的子节点,将所述子节点的执行结果存储至目标数据表;所述流程引擎针对需获取数据的子节点,从所述目标数据表获取所需的执行结果。

可选的,处理单元还包括:所述流程引擎将所述各子节点的执行状态和所述目标数据表记录至所述目标数据库。

可选的,处理单元还包括:若任一子节点的执行状态为异常状态,则从所述目标数据库中调用所述目标流程树中已完成的所有节点的执行结果和已完成的所有节点的执行状态,根据所述子节点的处理方案执行所述目标任务。

可选的,获取单元具体用于:流程引擎基于目标任务的各流程步骤,确定目标任务的初始流程树;

流程引擎针对初始流程树中的任一串行执行节点,确定串行执行节点的各子节点的优先级;若第一子节点的优先级高于第二子节点的优先级,且第一子节点与第二子节点在执行顺序上无依赖关系,则在初始流程树中设置第一子节点位于第二子节点之前,从而得到目标流程树,其中,优先级是根据子节点的异常概率确定的,异常概率越高优先级越高。

可选的,获取单元还用于:接收业务系统通过目标接口调用流程引擎,从而获得目标任务。

第三方面,本发明实施例还提供一种电子设备,包括至少一个处理器以及至少一个存储器,其中,存储器存储有计算机程序,当程序被处理器执行时,使得处理器执行上述第一方面中任务执行方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,存储介质存储有程序,当程序在计算机上运行时,使得计算机实现执行上述第一方面中任务执行方法。

附图说明

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

图1为本发明实施例提供的一种任务执行方法的流程图;

图2为本发明实施例提供的一种目标流程树的结构示意图;

图3为本发明实施例提供的一种目标流程树的执行顺序的流程图;

图4为本发明实施例提供一种目标流程树的结构示意图;

图5为本发明实施例提供的一种流程树重做的流程图;

图6为本发明实施例提供的一种流程树回滚的流程图;

图7为本发明实施例提供的一种任务执行装置的结构示意图;

图8为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在一种可能的场景下,若需要开发一项复杂的项目,其中由于该项目较复杂,需要经过多个子流程来完成。具体来说,在项目开发的过程中,需要根据功能的需求,开发一款流程引擎用于按照串行或者是并行的顺序执行设定好的各个子流程。其中子流程与子流程之间存在嵌套关系,子流程中包括多个子流程,子流程和子流程之间存在多种依赖关系,例如,某些子流程的依赖关系是必须按照串行的顺序执行,某些子流程的依赖关系可以是串行的顺序执行或者是并行的顺序执行。

在一种可能的情况下,由于该项目中某些子流程的依赖关系必须按照串行的顺序执行,则流程引擎需要按照串行的顺序执行设定好的各个子流程。但是这样的话,若其中一个子流程出现异常,则会直接终止执行,前面完成的子流程也无法恢复,从而导致流程引擎的执行效率较低。而且由于流程引擎是按照串行的顺序执行,发现异常流程的速度较慢,相应的,响应客户的速度也较慢,会降低客户的体验感。

综上,本发明实施例提供了一种任务执行的方法,该方法可以实现提高流程引擎的执行效率以及提高客户的体验感。

如图1所示,为本发明实施例提供的一种任务执行方法的流程图,该方法包括以下步骤:

步骤101,流程引擎确定目标任务的目标流程树。

本发明实施例中,流程引擎首先需要确定目标任务的目标流程树,其中目标流程树包括多个节点;多个节点包括执行节点和叶子节点,执行节点包括并行执行节点和/或串行执行节点;并行执行节点用于标识属于并行执行节点的下一层级的节点的执行方式为并行执行;串行执行节点用于标识属于串行执行节点的下一层级的节点的执行方式为串行执行;叶子节点用于表征需要执行的流程步骤。

步骤102,流程引擎遍历且执行目标流程树的各层级的各个子节点,子节点为执行节点或叶子节点。

本发明实施例中,由于执行方式包括并行方式和串行方式,流程引擎会遍历且执行目标流程树的各个层级的子节点。其中遍历是用于确定目标流程树的各个子节点的执行方式。在一种可能的情况下,流程引擎会按照并行和串行混合的方式执行目标流程树的各个子节点。

通过上述步骤101至步骤103可以看出,流程引擎通过将目标任务确定为目标流程树的形式,从而实现确定各个子节点的执行方式,其中执行方式包括串行执行和并行执行,进而实现流程引擎按照并行和串行混合的方式执行目标流程树的各个子节点,加快执行速度,提高流程引擎的执行效率。

为了实现提高流程引擎的执行效率,首先需要接收业务系统通过目标接口调用流程引擎,从而获取目标任务,然后需要根据目标任务确定目标任务的目标流程树。下面介绍如何确定目标任务的目标流程树。

如图2所示,为本发明实施例提供的一种目标流程树的结构示意图。其中,该目标流程树的结构是由串行和并行混合组成的。后再对初始流程树进行优化,从而得到目标流程树。具体来说,初始流程树会考虑串行和并行混合执行,图2中的S、S1、S2、S3、P11、P12、P13、S31、S32、S121、S122、S311、S312为目标流程树中的节点,其中S、S1、P12、S3、S31为执行节点,S2、P11、P13、S32、S121、S122、S311、S312为叶子节点。由于执行节点的执行方式分为两种,分别是并行执行和串行执行,其中,S为串行执行节点,其中属于S的下一层级的节点的执行方式为串行执行,也就是说,S1、S2、S3按照从左到右的顺序串行执行。S1为并行执行节点,其中属于S1的下一层级的节点的执行方式为并行执行,也就是说,P11、P12和P13是并行执行的。P12为串行执行节点,其中属于P12的下一层级的节点的执行方式为串行执行,也就是说,S121和S122按照从左到右的顺序串行执行。S3为串行执行节点,其中属于S3的下一层级的节点的执行方式为串行执行,也就是说,S31和S32按照从左到右的顺序串行执行。S31为并行执行节点,其中属于S31的下一层级节点的执行方式为并行执行,也就是说,P311和P312是并行执行的。虽然初始流程树中考虑了串行和并行混合执行,提高流程引擎的执行效率,但是由于初始流程树的各个节点发生异常的概率是不同的,若第一子节点的优先级高于第二子节点的优先级,且第一子节点与第二子节点在执行顺序上无依赖关系,则在初始流程树中设置第一子节点位于第二子节点之前,从而得到目标流程树,其中,优先级是根据子节点的异常概率确定的,异常概率越高优先级越高。然后流程引擎针对初始流程树中的任一串行执行节点,确定串行执行节点的各子节点的优先级,根据各个子节点的优先级,调整初始流程树,得到目标流程树。

如图3所示,为本发明实施例提供的一种目标流程树的执行顺序的流程图。具体来说,流程引擎针对目标流程树中的任一并行执行节点,为并行执行节点下的每个子节点启动对应的协程来执行对应的子节点。流程引擎针对目标流程树中任一串行执行节点,为串行执行节点下的每个子节点启动对应的协程来执行对应的子节点。由图3可以看出,由于S的下一层级的节点包括S1、S2、S3,其中由于S为串行执行节点,因此,S1、S2和S3的执行顺序应为先执行S1,S1执行完毕之后,再执行S2,S2执行完毕再执行S3,S3执行完毕则执行结束。具体来说,先执行S1,由于S1的下一层级的节点包括P11、P12和P13,S1为并行执行节点,因此,P11、P12和P13为并行执行,也就是说P11、P12和P13是同一时间开始执行的。其中P12为串行执行节点,因此,P12的下一层级的节点包括S121和S122,S121和S122的执行顺序应为先执行S121再执行S122。当P11、P12和P13都执行完毕之后,S1才执行完毕,然后再执行S2,当S2执行完毕之后,再执行S3,当S3执行完毕之后,目标流程树执行完毕。

在一种可能的实现方式中,为了减少服务器的负担,可以设置并发执行节点的下一层级的各个节点限流执行。举个例子,若设置S1的下一层级的节点限流,其中限流为2,则在S1的下一层级的节点P11、P12和P13中,其中两个开始同时执行,剩余一个等待前面两个的任一个结束后再执行。

如图4所示,为本发明实施例提供一种目标流程树的结构示意图。在一种可能的情况下,目标任务包括多个实例,多个实例中属于同一流程步骤的子节点属于同一层级下且并行执行。举个例子,若目标任务包括多个5个实例,每个实例都需要三个流程步骤,其中一个流程步骤对应一个叶子节点,需要说明的是,每个实例的三个叶子节点是串行执行的,目标任务的执行顺序需要满足这5个实例的中属于同一流程步骤的叶子节点属于同一层级下且并行执行,然后一个流程步骤对应的叶子节点全都执行完毕之后,再执行后续流程步骤对应的叶子节点,任一实例的各流程步骤的叶子节点具有表征所属实例的唯一标识。如图4所示,实例1的三个叶子节点为P11、P21和P31,实施例2的三个叶子节点为P12、P22、P32,实施例3的三个叶子节点为P13、P23、P33,实施例4的三个叶子节点为P14、P24、P34,实施例5的三个叶子节点为P15、P25、P35,其中5个实例的执行顺序都是从左到右,以实施例1为例说明唯一标识,实例1的第一流程步骤的叶子节点的唯一标识为P11、实施例1的第二流程步骤的叶子节点的唯一标识为P21,实施例1的第三流程步骤的叶子节点的唯一标识为P31,实施例2与实施例3与实施例1确定叶子节点的唯一标识的方法一致,在此不做赘述。由于S为串行执行节点,则S的下一层级的节点S1、S2、S3的执行方式为串行执行,其中执行顺序为从左到右,可以理解的是,先执行S1,S1执行完毕之后执行S2,S2执行完毕之后执行S3。由于S1为并行执行节点,则S1的下一层级的节点P11、P12、P13、P14、P15的执行方式为并行执行,可以理解的是,这5个实例的第一流程步骤对应的叶子节点同时执行。当S1执行完毕之后,执行S2,其中由于S2为并行执行节点,则S2的下一层级的节点P21、P21、P23、P24、P25的执行方式为并行执行,可以理解的是,这5个实例的第二流程步骤对应的叶子节点同时执行。当S2执行完毕之后,执行S3,其中由于S3为并行执行节点,则S3的下一层级的节点P31、P31、P33、P34、P35的执行方式为并行执行,可以理解的是,这5个实例的第三流程步骤对应的叶子节点同时执行。通过并行执行多个实例中属于同一流程步骤且属于同一层级的叶子节点,串行执行多个实例中不属于同一流程步骤且不属于同一层级的叶子节点,不仅可以实现提高流程引擎的执行效率,还可以及时的发现节点异常,这样响应客户的速度也会很快,提高客户的体验感。而且每个实例的叶子节点通过叶子节点的唯一标识标记了关联关系,若某一实例中的某些叶子节点的执行需要结合该实例的其他叶子节点的执行结果,则可以通过关联关系同一实例的叶子节点之间可以进行数据交互,从而便于后续流程引擎可以顺利执行,进而提高流程引擎的执行效率。

下面介绍一下流程树的节点之间如何进行数据交互。

本发明实施例中,在流程引擎执行目标流程树的需要数据传递的叶子节点之后,流程引擎针对需要数据传递的叶子节点,将叶子节点的执行结果存储至目标数据表中,在流程引擎执行目标流程树的需要获取数据的叶子节点之前,流程引擎针对需要获取数据的叶子节点,从目标数据表中获取所需的执行结果。举个例子,若目标任务有四个步骤,步骤1对应的为叶子节点S1,步骤2对应的为叶子节点S2,步骤3对应的为叶子节点S3,步骤4对应的为叶子节点S4,目标任务的四个步骤为串行执行,执行顺序按照从左往右执行,也就是S1、S2、S3、S4,流程引擎会根据该节点的标识确定是将该节点的执行结果存储在目标数据表中还是从目标数据表中获取其他节点的执行结果。其中若节点S3的标识为第一标识,则流程引擎根据第一标识会在节点S3执行完成之后,将该节点S3的执行结果的标识以及S3的执行结果存储在目标数据表中。举个例子,若S3的执行结果为IP地址,则S3的执行结果为IP:111.222.122.00。若节点S4的标识为第二标识,则流程引擎会在S4执行之前,根据第二标识从目标数据表中获取所需节点的执行结果。通过将各个叶子节点的执行结果存储在目标数据表中,从而可以实现跨节点进行数据交互,进而实现提高流程引擎的执行速度,提高流程引擎的执行效率。

在一种可能的实现方式中,若目标任务有三个步骤,步骤1对应的节点为叶子节点S1,步骤2对应的为执行节点S2,步骤3对应的为叶子节点S3,其中S1、S2、S3是串行执行的,S2为并行执行节点,S2的下一层级的节点包括叶子节点S21、叶子节点S22,其中由于S21与S22的父节点都是S2,S21与S22的标识都为第一标识,为了可以清楚的将S21与S22的执行结果以及执行状态存储在目标数据库中,需要将在S21和S22的执行结果的名称上加上叶子节点的标号。具体来说,若S21和S22的执行结果是IP地址,则S21的执行结果为IP.21:111.222.111.00,S21的执行状态为执行完成。S22的执行结果为IP.22:111.111.000.11,S22的执行状态为执行完成。

本发明实施例中,流程引擎执行目标流程树的各个叶子节点之后,会将目标流程树的结构、目标数据表以及各子节点的执行状态进行序列化,存储至目标数据库中,当后续可以根据反序列化的方式从目标数据库中调用所需的目标流程树的结构、目标数据表以及各子节点的执行状态。

本发明实施例中,若流程引擎在执行目标流程树的各个叶子节点的过程中,可能某个叶子节点的执行状态为异常状态,那么流程引擎在确定目标任务的目标流程树的时候,会预先设置目标流程树的所有叶子节点发生异常的处理方案。若任一叶子节点的执行状态为异常状态,则从目标数据库中调用目标流程树中已完成的所有节点的执行结果和已完成的所有节点的执行状态,根据叶子节点的处理方案执行目标任务。具体来说,当某一叶子节点的执行状态为异常状态时,首先需要恢复执行现场,也就是流程引擎会从目标数据库中调用目标流程树中已完成的所有节点的执行结果和已完成的所有节点的执行状态,然后根据该处于异常状态的叶子节点的处理方案对该叶子节点的异常进行处理。其中预先设置的异常处理方案有四种,下面介绍这四种异常处理方案。

第一种是异常处理方案为当某一叶子节点的执行状态为异常状态,重做该叶子节点,其中最大重做次数为N次,每次重做的时间间隔为M秒,N为大于0的正整数,M为大于0的数。举个例子,若N为3,M为1的话,则当该叶子节点的执行状态为异常状态时,重做该叶子节点,其中最大重做次数为3次,每次重做的时间间隔为M秒。

如图5所示,为本发明实施例提供的一种流程树重做的流程图。重做该叶子节点的具体步骤是流程引擎按照流程树的各个叶子节点的执行方式从头开始执行,对于执行成功的叶子节点跳过执行,对执行状态为异常的叶子节点重新进行执行,举个例子,若S2的执行状态为异常状态,首先流程引擎会调用目标数据库中已完成的所有节点的执行结果和已完成的所有节点的执行状态,从而实现恢复执行现场,然后由于S1执行完毕,且S1的执行状态为执行完成,S2的执行状态为异常状态,可以理解的是S2未执行,因此,流程引擎会跳过S1,从S2开始执行。

如图6所示,为本发明实施例提供的一种流程树回滚的流程图。其中流程树中S1、S2和S3之间是按照从左到右的顺序串行执行的。第二种异常处理方案是当某一叶子节点的执行状态为异常状态时,回滚该叶子节点。回滚该叶子节点的具体步骤是流程引擎会复位已经执行完成的叶子节点。举个例子,若S2的执行状态为异常状态,首先流程引擎会调用目标数据库中已完成的所有节点的执行结果和已完成的所有节点的执行状态,从而实现恢复执行现场。其中S1的执行状态为执行完成,S3还未开始执行,则流程引擎会复位S1,然后从S1开始执行。

本发明实施例中,第三种异常处理方案是当某一叶子节点的执行状态为异常状态时,终止该叶子节点的执行。

本发明实施例中,第四种异常处理方案是当某一叶子节点的执行状态为异常状态时,忽略异常继续执行。

本发明实施例中,流程引擎以软件开发工具包(Software Development Kit,SDK)的方式提供对外服务,采用SDK提供相关操作,不需要对流程进行配置,从而实现流程引擎轻量化。

在一种可能的情况下,若异常处理方案未解决叶子节点的异常状态问题,则可以通过业务系统根据目标流程树的名称通过异常处理接口调用流程引擎,从而可以实现解决流程引擎中某个叶子节点的异常状态,其中异常处理接口包括异步回滚接口、同步回滚接口、异步重做接口、同步重做接口等,在此不做限定。

本发明实施例中,业务系统通过查询接口调用流程引擎,从而可以实现查询流程树的各个节点。业务系统通过删除接口调用流程引擎,从而可以实现删除流程树中的任一节点。

基于上述同样的技术构思,本发明实施例还提供一种任务执行装置,如图7所示,为本发明实施例提供的一种任务执行装置的结构示意图。该装置700包括:获取单元701,用于流程引擎确定目标任务的目标流程树,所述目标流程树包括多个节点;所述多个节点包括执行节点和叶子节点,所述执行节点包括并行执行节点和/或串行执行节点;所述并行执行节点用于标识属于所述并行执行节点的下一层级的节点的执行方式为并行执行;所述串行执行节点用于标识属于所述串行执行节点的下一层级的节点的执行方式为串行执行;所述叶子节点用于表征需要执行的流程步骤;处理单元702,用于所述流程引擎遍历且执行所述目标流程树的各层级的各个子节点,所述子节点为执行节点或叶子节点。

可选的,处理单元702具体用于:所述流程引擎针对所述目标流程树中的任一并行执行节点,为所述并行执行节点下的每个子节点启动对应的协程来执行对应的子节点。

可选的,处理单元702还包括:所述目标任务中包括多个实例;所述多个实例中属于同一流程步骤的子节点属于同一层级下且并行执行;任一实例的各流程步骤的所述叶子节点具有表征所属实例的唯一标识。

可选的,处理单元702还包括:所述流程引擎针对需数据传递的子节点,将所述子节点的执行结果存储至目标数据表;所述流程引擎针对需获取数据的子节点,从所述目标数据表获取所需的执行结果。

可选的,处理单元702还包括:所述流程引擎将所述各子节点的执行状态和所述目标数据表记录至所述目标数据库。

可选的,处理单元702还包括:若任一子节点的执行状态为异常状态,则从所述目标数据库中调用所述目标流程树中已完成的所有节点的执行结果和已完成的所有节点的执行状态,根据所述子节点的处理方案执行所述目标任务。

可选的,获取单元701具体用于:流程引擎基于目标任务的各流程步骤,确定目标任务的初始流程树;

流程引擎针对初始流程树中的任一串行执行节点,确定串行执行节点的各子节点的优先级;若第一子节点的优先级高于第二子节点的优先级,且第一子节点与第二子节点在执行顺序上无依赖关系,则在初始流程树中设置第一子节点位于第二子节点之前,从而得到目标流程树,其中,优先级是根据子节点的异常概率确定的,异常概率越高优先级越高。

可选的,获取单元701还用于:接收业务系统通过目标接口调用流程引擎,从而获得目标任务。

基于相同的技术构思,本申请实施例还提供了一种电子设备,如图8所示,电子设备800包括至少一个处理器801,以及与至少一个处理器连接的存储器802,本申请实施例中不限定处理器801与存储器802之间的具体连接介质,图8中处理器801和存储器802之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本申请实施例中,存储器802存储有可被至少一个处理器801执行的指令,至少一个处理器801通过执行存储器802存储的指令,可以执行前述的任务执行方法中所包括的步骤。

其中,处理器801是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器802内的指令以及调用存储在存储器802内的数据,从而实现数据处理。可选的,处理器801可包括一个或多个处理单元,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。在一些实施例中,处理器801和存储器802可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合任务执行方法实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器802可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器802是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述任务执行方法的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 一种通用异步任务执行方法及装置
  • 一种智能设备执行任务的方法和装置
  • 一种任务执行方法和装置
  • 一种基于分享的多任务执行方法、装置和设备/终端/服务器
  • 一种任务执行线程的处理方法、装置、设备及存储介质
  • 储存装置及其任务执行方法以及对应于储存装置的主机及其任务执行方法
  • 一种任务执行的方法、装置以及任务执行系统
技术分类

06120115863670