断点续传方法和装置与流程

文档序号:19814304发布日期:2020-01-31 18:52阅读:355来源:国知局
断点续传方法和装置与流程

本发明实施例涉及流程处理技术,尤其涉及一种断点续传方法和装置。



背景技术:

分布式系统的业务流程常常比较复杂,需要通过流程编排的方法将各个业务节点串联起来,当某一个节点出现异常情况时,需要根据不同的业务场景给出不同的处理办法。

当节点出现异常后需要重新触发业务流程时,可以采用断点续传方法进行处理,其中,现有的断点续传方法是当某一个节点发生异常时,记录异常节点的节点名称。在做断点续传时通过编写大量的判断语句,从第一个节点开始判断续传时需要从哪个节点开始执行,即断点续传时,从第一个节点开始,判断记录的节点名称与第一个节点的节点名称是否相同,如果相同,则从第一个节点开始执行,如果不等于则跳过,判断记录的节点名称与第二个节点的节点名称是否相同,直至确定异常节点。

因此,现有技术中,每当业务流程中存在节点异常而进行断点续传时,需要从第一个节点开始,判断节点是否为出现异常的节点,使得断点续传过程繁琐,断点续传效率低。



技术实现要素:

本发明实施例提供一种断点续传方法和装置,解决了现有技术中需要从第一个节点开始依次确定节点是否为异常节点,导致的断点续传过程繁琐,断点续传效率低的问题。

第一方面,本发明实施例提供一种断点续传方法,包括:

查询补偿表,获取待续传事件的续传信息,所述待续传事件为在执行业务流程时因所述业务流程上的任一节点出现异常而需要断点续传的事件,所述续传信息包括:第一节点的标识、待续传事件的标识、在所述第一节点执行所述业务流程所需的参数信息,所述第一节点为出现异常的节点;

根据所述续传信息,从与所述第一节点开始重新执行所述业务流程;

其中,所述业务流程上的所有节点是基于apachecamel架构编排的,所述补偿表中包括至少一个待续传事件。

在一些实施例中,所述查询补偿表,获取待续传事件的续传信息之前,还包括:

在执行第一事件触发的所述业务流程过程中,检测到所述第一节点出现异常时,将第一节点的标识、所述第一事件的标识作为待续传事件的标识、在所述第一节点执行所述业务流程所需的参数信息保存为所述续传信息;

停止执行所述业务流程。

在一些实施例中,所述根据所述续传信息,从与所述第一节点开始重新执行所述业务流程,包括:

根据所述待续传事件的标识,获取与所述待续传事件对应的所述业务流程;

根据所述第一节点的标识,在所述业务流程中确定所述第一节点;

根据在所述第一节点执行所述业务流程所需的参数信息,从与所述第一节点开始重新执行所述业务流程。

在一些实施例中,所述根据所述续传信息,从所述第一节点开始重新执行所述业务流程之前,包括:

根据所述待续传事件的标识调用断点续传入口,获取断点续传流程;所述断点续传入口用于为所述待续传事件提供执行所述断点续传的入口;所述断点续传流程用于指示执行所述断点续传的步骤。

在一些实施例中,所述根据所述续传信息,从与所述第一节点开始重新执行所述业务流程,包括:

根据所述待续传事件的标识,判断所述待续传事件是否具有对应的分布式锁;

若否,则为与所述待续传事件设置分布式锁,并根据所述续传信息,从与所述第一节点开始重新执行所述业务流程;

所述根据所述续传信息,从与所述第一节点开始重新执行所述业务流程之后,还包括:

在所述业务流程结束后,删除所述分布式锁;

其中,所述分布式锁用于指示正在执行所述待续传事件对应的业务流程。

在一些实施例中,所述续传信息包括续传标识,所述续传标识用于从所述查询表中识别所述待续传事件;

所述查询补偿表,获取待续传事件的续传信息,包括:

查询补偿表,根据所述续传标识,在所述补偿表中确定所述待续传事件;

获取待续传事件的续传信息;

所述根据所述续传信息,从与所述第一节点开始重新执行所述业务流程之后,还包括:

若所述业务流程执行成功,则将所述续传标识更改为指示所述待续传事件的断点续传成功。

在一些实施例中,所述根据所述续传信息,从与所述第一节点开始重新执行所述业务流程之前,还包括:

基于所述apachecamel架构,将在所述第一节点执行所述业务流程所需的参数信息和补偿标识封装为第一报文,其中,所述补偿标识增加在所述第一报文的报文头中,所述补偿标识用于指示当前执行的业务流程为进行断点续传时所要执行的业务流程。

在一些实施例中,所述根据所述续传信息,从与所述第一节点开始重新执行所述业务流程之后,还包括:

在执行所述业务流程的过程中,若检测到第二节点出现异常时,将所述续传信息中的第一节点的标识更改为第二节点的标识、在所述第一节点执行所述业务流程所需的参数信息更改为在所述第二节点执行所述业务流程所需的参数信息;其中,所述第二节点为所述业务流程上的所述第一节点的下游任一节点;

停止执行所述业务流程。

第二方面,本发明实施例提供一种断点续传装置,包括:

查询模块,用于查询补偿表,获取待续传事件的续传信息,所述待续传事件为在执行业务流程时因所述业务流程上的任一节点出现异常而需要断点续传的事件,所述续传信息包括:第一节点的标识、待续传事件的标识、在所述第一节点执行所述业务流程所需的参数信息,所述第一节点为出现异常的节点;

处理模块,用于根据所述续传信息,从与所述第一节点开始重新执行所述业务流程;

其中,所述业务流程上的所有节点是基于apachecamel架构编排的,所述补偿表中包括至少一个待续传事件。

在一些实施例中,所述处理模块,在所述查询模块查询补偿表,获取待续传事件的续传信息之前,还用于:

在执行第一事件触发的所述业务流程过程中,检测到所述第一节点出现异常时,将第一节点的标识、所述第一事件的标识作为待续传事件的标识、在所述第一节点执行所述业务流程所需的参数信息保存为所述续传信息;

停止执行所述业务流程。

在一些实施例中,所述处理模块在根据所述续传信息,从与所述第一节点开始重新执行所述业务流程时,具体用于:

根据所述待续传事件的标识,获取与所述待续传事件对应的所述业务流程;

根据所述第一节点的标识,在所述业务流程中确定所述第一节点;

根据在所述第一节点执行所述业务流程所需的参数信息,从与所述第一节点开始重新执行所述业务流程。

在一些实施例中,所述处理模块根据所述续传信息,从所述第一节点开始重新执行所述业务流程之前,还用于:

根据所述待续传事件的标识调用断点续传入口,获取断点续传流程;所述断点续传入口用于为所述待续传事件提供执行所述断点续传的入口;所述断点续传流程用于指示执行所述断点续传的步骤。

在一些实施例中,所述处理模块在根据所述续传信息,从与所述第一节点开始重新执行所述业务流程时,具体用于:

根据所述待续传事件的标识,判断所述待续传事件是否具有对应的分布式锁;

若否,则为与所述待续传事件设置分布式锁,并根据所述续传信息,从与所述第一节点开始重新执行所述业务流程;

所述处理模块根据所述续传信息,从与所述第一节点开始重新执行所述业务流程之后,还用于:

在所述业务流程结束后,删除所述分布式锁;

其中,所述分布式锁用于指示正在执行所述待续传事件对应的业务流程。

在一些实施例中,所述续传信息包括续传标识,所述续传标识用于从所述查询表中识别所述待续传事件;

所述查询模块在查询补偿表,获取待续传事件的续传信息时,具体用于:

查询补偿表,根据所述续传标识,在所述补偿表中确定所述待续传事件;

获取待续传事件的续传信息;

所述处理模块在根据所述续传信息,从与所述第一节点开始重新执行所述业务流程之后,还用于:

若所述业务流程执行成功,则将所述续传标识更改为指示所述待续传事件的断点续传成功。

在一些实施例中,所述处理模块根据所述续传信息,从与所述第一节点开始重新执行所述业务流程之前,还用于:

基于所述apachecamel架构,将在所述第一节点执行所述业务流程所需的参数信息和补偿标识封装为第一报文,其中,所述补偿标识增加在所述第一报文的报文头中,所述补偿标识用于指示当前执行的业务流程为进行断点续传时所要执行的业务流程。

在一些实施例中,所述处理模块在根据所述续传信息,从与所述第一节点开始重新执行所述业务流程之后,还用于:

在执行所述业务流程的过程中,若检测到第二节点出现异常时,将所述续传信息中的第一节点的标识更改为第二节点的标识、在所述第一节点执行所述业务流程所需的参数信息更改为在所述第二节点执行所述业务流程所需的参数信息;其中,所述第二节点为所述业务流程上的所述第一节点的下游任一节点;

停止执行所述业务流程。

第三方面,本发明实施例提供一种电子设备,该电子设备包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以执行本发明实施例第一方面任一项所述的方法。

第四方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时实现发明实施例第一方面任一项所述的方法。

第五方面,本申请实施例提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备实施本申请发明实施例第一方面任一项所述的方法。

本发明实施例提供一种断点续传方法和装置,通过查询补偿表,获取待续传事件的续传信息,根据续传信息,从与第一节点开始重新执行业务流程。其中,待续传事件为在执行业务流程时因业务流程上的任一节点出现异常而需要断点续传的事件,续传信息包括:第一节点的标识、待续传事件的标识、在第一节点执行业务流程所需的参数信息,第一节点为出现异常的节点;业务流程上的所有节点是基于apachecamel架构编排的,补偿表中包括至少一个待续传事件。使得在重新执行因节点出现异常而中断的业务流程时,可以直接确定出导致上一次业务流程中断的异常节点,从而从该节点开始重新执行业务流程,解决了现有技术中需要从第一个节点开始依次确定节点是否为异常节点,导致的断点续传过程繁琐,断点续传效率低的问题,提高了断点续传效率。

附图说明

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

图1为本发明一实施例提供的应用场景的示意图;

图2为本发明一实施例提供的断点续传方法的流程图;

图3为本发明一实施例提供的节点异常的业务流程场景图;

图4为本发明另一实施例提供的断点续传方法的流程图;

图5为本发明一实施例提供的断点续传装置的结构示意图;

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

具体实施方式

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

图1为本发明一实施例提供的应用场景的示意图,如图1所示,用户通过终端101-104与保险服务器105办理保险业务,例如,投保业务、退保业务、查询业务,等。其中,当办理其中一个保险业务时,如果该业务流程发生异常,则发生异常时的处理方式可以参见本发明下述各实施例的记载。

图2为本发明一实施例提供的断点续传方法的流程图,本实施例的方法的执行主题是保险服务器,如图1所示,本实施例的方法可以包括:

s201、查询补偿表,获取待续传事件的续传信息。

其中,待续传事件为在执行业务流程时因业务流程上的任一节点出现异常而需要断点续传的事件,续传信息包括:第一节点的标识、待续传事件的标识、在第一节点执行业务流程所需的参数信息,第一节点为出现异常的节点;业务流程上的所有节点是基于apachecamel架构编排的,补偿表中包括至少一个待续传事件。

本实施例中,保险业务中的每个业务都包括多个节点,该多个节点组成一个保险业务的业务流程。在本发明实施例中,每个保险业务的节点基于apachecamel架构进行编排,即为每个节点设置唯一识别该节点的标识,并根据节点在对应保险业务的业务流程中的执行顺序,将节点的标识串联,上一个节点通过串联节点的标识招待该节点的下一个节点,从而将上一个节点输出的信息作为下一个节点的输入,获得对应保险业务的业务流程。

可选的,在s201之前,断点续传方法还包括:

s2001、在执行第一事件触发的业务流程过程中,检测到第一节点出现异常时,将第一节点的标识、第一事件的标识作为待续传事件的标识、在第一节点执行业务流程所需的参数信息保存为续传信息。

s2002、停止执行业务流程。

本实施例中,促使需要使用任一保险业务对应的业务流程的事件为第一事件,例如,投保业务,用户需要通过投保业务的业务流程新建一个投保信息,该新建一个投保信息即为第一事件。

如图3所示,processor(1)、processor(2)、…、processor(n)表示n个节点的标识,nodeerror用于标识异常节点的标识,当processor(1)、processor(2)、…、processor(n)中任一节点出现异常时,将出现异常的节点的标识赋值给nodeerror。

用户通过移动终端办理与图3所示的业务流程对应的保险业务时,当业务流程执行到其中一个节点时,如果该节点出现异常,其中,图3中示出的是节点processor(2)出现异常,则当前无法继续执行下面的节点,需要进行断点续传以执行异常节点以及该异常节点下面的节点。此时,节点processor(2)为第一节点,将该节点的标识processor(2)赋值给nodeerror,则将nodeerror作为第一节的标识,然后将第一节的标识、待续传事件的标识、在该节点(即第一节点)执行业务流程所需的参数信息保存到数据库中建立的补偿表中,从而在补偿表中创建了一个待续传事件。然后,停止执行图3所示的业务流程。

其中,待续传事件的标识用于识别第一事件,例如,业务流程为投保业务对应的业务流程时,在投保业务对应的业务流程中,通过保险号识别出使用该业务流程的对象,因此,待续传事件的标识为保险号。又例如,业务流程为财务支付业务对应的业务流程时,在财务支付业务对应的业务流程中,通过支付号识别出使用该业务流程的对象,因此,待续传事件的标识为支付号。

进行断点续传时,用户可以预先设置查询补偿表的周期,在查询时间点到达时,保险服务器主动查询补偿表,用户也可以设置补偿表中待续传事件的数量,保险服务器统计补偿表中待续传事件的数量,当数量大于或等于预设值时,查询补偿表。在获取到待续传事件,获取待续传事件的续传信息。其中,补偿表中包括至少一个待续传事件。

s202、根据续传信息,从第一节点开始重新执行业务流程。

本实施例中,在获取到续传信息后,确定出因节点异常而需要断点续传的业务流程以及异常节点,从异常节点开始重新执行业务流程。

其中,可选的,s202的一种可能的实现方式为:

s2021、根据待续传事件的标识,获取与待续传事件对应的业务流程。

s2022、根据第一节点的标识,在业务流程中确定第一节点。

s2023、根据在第一节点执行业务流程所需的参数信息,从与第一节点开始重新执行业务流程。

本实施例中,由于待续传事件的标识用于识别第一事件,因此,根据待续传事件的标识可以确定执行第一事件触发的业务流程。由于业务流程上的所有节点是基于apachecamel架构编排的,因此,可以根据第一节点的标识直接在业务流程中找到出现异常的节点,从找到的出现异常的节点开始,根据在该节点执行业务流程所需的参数信息开始重新执行业务流程。

本实施例,通过查询补偿表,获取待续传事件的续传信息,根据续传信息,从与第一节点开始重新执行业务流程。其中,待续传事件为在执行业务流程时因业务流程上的任一节点出现异常而需要断点续传的事件,续传信息包括:第一节点的标识、待续传事件的标识、在第一节点执行业务流程所需的参数信息,第一节点为出现异常的节点;业务流程上的所有节点是基于apachecamel架构编排的,补偿表中包括至少一个待续传事件。使得在重新执行因节点出现异常而中断的业务流程时,可以直接确定出导致上一次业务流程中断的异常节点,从而从该节点开始重新执行业务流程,解决了现有技术中需要从第一个节点开始依次确定节点是否为异常节点,导致的断点续传过程繁琐,断点续传效率低的问题,提高了断点续传效率。

可选的,s202之前,断点续传方法还包括:根据待续传事件的标识调用断点续传入口,获取断点续传流程;断点续传入口用于为待续传事件提供执行断点续传的入口;断点续传流程用于指示执行断点续传的步骤。

本实施例中,建立断点续传入口,例如,封装一个restful风格的接口,此接口的请求方式为post请求,该接口即为断点续传的入口,任意一个保险业务在业务流程上的节点出现异常,需要进行断点续传时,可以通过待续传事件的标识调用该断点续传入口,进入断点续传流程。其中,断点续传流程定义了根据续传信息,实现从异常节点开始重新执行业务流程的步骤。例如,根据待续传事件的标识获取执行业务流程所需的参数信息以及异常节点的标识。创建camel自有的生产者实例producertemplate,并将参数信息作为producertemplate的消息体,将带有补偿标记的报文头header作为请求头调camel的api接口将消息体转发到异常节点的标识对应的节点中,继续后面的流程。从而使得所有保险业务对应的业务流程都可以共用同一个断点续传流程,使断点续传流程更加通用和智能,也可以避免根据不同的业务流程开发对应的断点续传流程。

图4为本发明另一实施例提供的断点续传方法的流程图。在上述各实施例的基础上,如图4所示,本实施例的方法可以包括:

s401、查询补偿表,获取待续传事件的续传信息。

可选的,续传信息包括续传标识,续传标识用于从查询表中识别待续传事件。相应的,s201和/或s401的一种可能的实现方式为:

s4011、查询补偿表,根据续传标识,在补偿表中确定待续传事件。

续传信息包括续传标识,续传标识用于从查询表中识别待续传事件。

本实施例中,由于业务流程的节点出现异常,在将异常节点的标识、续传事件的标识、在该节点(即第一节点)执行业务流程所需的参数信息作为续传信息保存到数据库中建立的补偿表中,在补偿表中创建了一个待续传事件时,还可以为待续传事件事设置续传标识,因此,续传信息号可以包括续传标识。从而在查询补偿表时,可以通过标识判断出待续传事件。

s4012、获取待续传事件的续传信息。

本实施例中,在获取到待续传事件后,获取待续传事件的续传信息。

s402、根据待续传事件的标识,判断出待续传事件不具有对应的分布式锁时,为与待续传事件设置分布式锁。

其中,分布式锁用于指示正在执行待续传事件对应的业务流程。

本实施例中,在进行断点续传之前,可以先判断是否正在对待续传事件进行断点续传,以避免重复对同一个待续传事件进行断点续传,可以根据待续传事件的标识查询分布式表中是否能匹配到该续传事件的标识,若分布式表中可以匹配到该续传事件的标识,这说明与该待续传事件的标识对应的待续传事件正在进行断点续传,否则,将该待续传事件的标识存入分布式表中,这样就为与该待续传事件的标识对应的待续传事件建立一个分布式锁,根据分布式锁指示正在执行该待续传事件对应的业务流程。其中,分布式表例如可以为redis。

s403、基于apachecamel架构,将在第一节点执行业务流程所需的参数信息和补偿标识封装为第一报文。

其中,补偿标识增加在第一报文的报文头中,补偿标识用于指示当前执行的业务流程为进行断点续传时所要执行的业务流程。

本实施例中,为了区分当前正在执行的业务流程是否是进行断点续传时所要执行的业务流程,可以设置一个补偿标记,并将在第一节点(即异常节点)执行业务流程所需的参数信息和补偿标识封装为第一报文,将第一报文发送给断点续传时,业务流程上与异常节点的标识对应的节点。其中,由于业务流程上的所有节点是基于apachecamel架构编排的,因此,在封装获得第一报文时,需要基于apachecamel架构的协议进行封装。可选的,可将补偿标识增加在第一报文的报文头中。

需要说明的是,在一些实施例中,由于“在第一节点执行业务流程所需的参数信息”数据量比较大,因此,在s402中,可以先获取第一节点的标识以及待续传事件的标识,在执行s403后,再次查询补偿表,获取“在第一节点执行业务流程所需的参数信息”。

s404、根据续传信息,从与第一节点开始重新执行业务流程

本实施例中,s405的实现方式可参考上文的描述,此处不再赘述。

s405、在执行业务流程的过程中,检测是否存在第二节点出现异常,若是,则执行s406;若否,则执行s407。

其中,第二节点为业务流程上的第一节点的下游任一节点;

本实施例中,断点续传时,在从第一节点开始重新执行述业务流程时,无法保证节点不会出现异常,因此,需要检测是否存在第二节点出现异常。其中,第二节点为业务流程上的第一节点的下游任一节点。如果存在第二节点出现异常的情况,执行s406,其中,例如,可以将s404中设置的补偿标识更换为用于指示断点续传时,执行业务流程的过程中节点出现异常的问题。如果不存在第二节点出现异常的情况,则继续执行业务流程,直至业务流程执行完毕,然后,执行s407。

s406、将续传信息中的第一节点的标识更改为第二节点的标识、在第一节点执行业务流程所需的参数信息更改为在第二节点执行业务流程所需的参数信息,并停止执行业务流程。

本实施例中,存在第二节点出现异常的情况时,需要保存第二节点对应的续传信息,例如,可在与第一节点对应的续传信息中,将第一节点的标识更改为第二节点的标识、在第一节点执行业务流程所需的参数信息更改为在第二节点执行业务流程所需的参数信息。然后,停止执行当前执行的业务流程。

s407、删除分布式锁。

本实施例中,断点续传时,执行业务流程过程中,当存在第二节点出现异常的情况或不存在第二节点出现异常的情况时,均需要删除分布式表中保存的与执行的业务流程对应的待续传事件的标识,即删除分布式锁。从而在由于第二节点出现异常而需要断点续传时,可以进行断点续传。

s408、若业务流程执行成功,则将续传标识更改为指示待续传事件的断点续传成功。

本实施例中,续传信息中包括续传标识时,在断点续传对应的业务流程结束时,如果业务流程是由于第二节点出现异常而结束,则说明业务流程没有执行成功,不改变包括续传标识。如果业务流程执行成功,则将续传标识更改为指示待续传事件的断点续传成功,从而在下一次查询补偿表时,不再获取该待续传事件的续传信息。其中,在一些实施例中,可以根据补偿标识判断业务流程是否执行成功,当补偿标识为预先设置的补偿标识时,说明在执行断点续传对应的业务流程时,不存在第二节点出现异常的情况,业务流程执行成功;如果补偿标识发生更改,则说明在执行断点续传对应的业务流程时,存在第二节点出现异常的情况,从而使业务流程结束。

本实施例,基于apachecamel架构编排业务流程上的所有节点,从而在断点续传时,可以根据续传信息,可以直接确定出导致上一次业务流程中断的异常节点,从而从该节点开始重新执行业务流程。在此基础上,为待续传事件设置续传标识,即使续传信息包括续传标识,可以在查询补偿表时,快速确定待续传事件,进一步提高断点续传效率;在待续传事件不具有对应的分布式锁时,设置分布式锁,可以避免重复为待续传事件进行断点续传;为待续传事件设置补偿标记,以使可以根据补偿标记快速判断待续传事件对应的业务流程是否成功执行。

图5为本发明一实施例提供的断点续传装置的结构示意图。如图5所示,本实施例的装置可以包括:查询模块51和处理模块52。其中,

查询模块51,用于查询补偿表,获取待续传事件的续传信息,待续传事件为在执行业务流程时因业务流程上的任一节点出现异常而需要断点续传的事件,续传信息包括:第一节点的标识、待续传事件的标识、在第一节点执行业务流程所需的参数信息,第一节点为出现异常的节点;

处理模块52,用于根据续传信息,从与第一节点开始重新执行业务流程;

其中,业务流程上的所有节点是基于apachecamel架构编排的,补偿表中包括至少一个待续传事件。

在一些实施例中,处理模块52,在查询模块51查询补偿表,获取待续传事件的续传信息之前,还用于:

在执行第一事件触发的业务流程过程中,检测到第一节点出现异常时,将第一节点的标识、第一事件的标识作为待续传事件的标识、在第一节点执行业务流程所需的参数信息保存为续传信息;

停止执行业务流程。

在一些实施例中,处理模块52在根据续传信息,从与第一节点开始重新执行业务流程时,具体用于:

根据待续传事件的标识,获取与待续传事件对应的业务流程;

根据第一节点的标识,在业务流程中确定第一节点;

根据在第一节点执行业务流程所需的参数信息,从与第一节点开始重新执行业务流程。

在一些实施例中,处理模块52根据续传信息,从第一节点开始重新执行业务流程之前,还用于:

根据待续传事件的标识调用断点续传入口,获取断点续传流程;断点续传入口用于为待续传事件提供执行断点续传的入口;断点续传流程用于指示执行断点续传的步骤。

在一些实施例中,处理模块52在根据续传信息,从与第一节点开始重新执行业务流程时,具体用于:

根据待续传事件的标识,判断待续传事件是否具有对应的分布式锁;

若否,则为与待续传事件设置分布式锁,并根据续传信息,从与第一节点开始重新执行业务流程;

处理模块52根据续传信息,从与第一节点开始重新执行业务流程之后,还用于:

在业务流程结束后,删除分布式锁;

其中,分布式锁用于指示正在执行待续传事件对应的业务流程。

在一些实施例中,续传信息包括续传标识,续传标识用于从查询表中识别待续传事件;

查询模块51在查询补偿表,获取待续传事件的续传信息时,具体用于:

查询补偿表,根据续传标识,在补偿表中确定待续传事件;

获取待续传事件的续传信息;

处理模块52在根据续传信息,从与第一节点开始重新执行业务流程之后,还用于:

若业务流程执行成功,则将续传标识更改为指示待续传事件的断点续传成功。

在一些实施例中,处理模块52根据续传信息,从与第一节点开始重新执行业务流程之前,还用于:

基于apachecamel架构,将在第一节点执行业务流程所需的参数信息和补偿标识封装为第一报文,其中,补偿标识增加在第一报文的报文头中,补偿标识用于指示当前执行的业务流程为进行断点续传时所要执行的业务流程。

在一些实施例中,处理模块52在根据续传信息,从与第一节点开始重新执行业务流程之后,还用于:

在执行业务流程的过程中,若检测到第二节点出现异常时,将续传信息中的第一节点的标识更改为第二节点的标识、在第一节点执行业务流程所需的参数信息更改为在第二节点执行业务流程所需的参数信息;其中,第二节点为业务流程上的第一节点的下游任一节点;

停止执行业务流程。

本实施例的装置,可以用于执行上述任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图6为本发明一实施例提供的电子设备的结构示意图,如图6所示,本实施例的电子设备可以包括:至少一个处理器61和存储器62。图6示出的是以一个处理器为例的电子设备,其中,

存储器62,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器62可能包含高速随机存取存储器(randomaccessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

处理器61,用于执行存储器62存储的计算机执行指令,以实现上述任一方法实施例中的断点续传方法。

其中,处理器61可能是一个中央处理器(centralprocessingunit,cpu),或者是特定集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本申请实施例的一个或多个集成电路。

可选的,在具体实现上,如果存储器62和处理器61独立实现,则存储器62和处理器61可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器62和处理器61集成在一块芯片上实现,则存储器62和处理器61可以通过内部接口完成相同间的通信。

本实施例以上的电子设备,可以用于执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1