工作流任务状态的恢复方法及装置、存储介质、计算设备与流程

文档序号:13661072阅读:254来源:国知局
工作流任务状态的恢复方法及装置、存储介质、计算设备与流程

本发明涉及数据流通领域,具体地涉及一种工作流任务状态的恢复方法及装置、存储介质、计算设备。



背景技术:

在数据流通领域中,数据流通系统与工作流任务状态密切相关,由于数据资产的特殊性(例如,数据资产对保密性要求高),因而数据流通过程中的工作流任务状态的恢复机制难以采用第三方组件实现。一般来说,在数据流通过程中,工作流任务状态流转往往对应着完整的事件流流转过程。事件流中的事件数量通常非常庞大、事件状态变化复杂,且事件可能包含有向有环图,进一步增加事件流流转的复杂度。

一旦工作业务流任务状态发生异常,现有方案可以采用单纯事件流的恢复方式,但需要重新回溯整个事件流,工作业务流任务状态恢复效率低下;也可以采用传统状态机的恢复方式,但传统状态机无法恢复有向有环图的事件,极端情况下,可能需要通过重新回溯整个事件流才能恢复工作业务流任务状态,恢复效率也很低。现有的恢复方式都会降低数据流通效率。



技术实现要素:

本发明解决的技术问题是如何高效恢复工作流任务状态,以避免重新回溯整个事件流,提高数据流通效率。

为解决上述技术问题,本发明实施例提供一种工作流任务状态的恢复方法,所述恢复方法包括:在工作流任务状态流转过程中创建事件流,所述事件流包含多个事件和至少一个快照,每一快照包含所述事件流在单个时间点的至少部分信息的集合;当所述工作流任务状态出现异常时,根据最新可用的快照对所述事件流中的事件进行回溯。

可选的,所述在工作流任务状态流转过程中创建事件流的步骤包括:在所述工作流任务状态流转过程中,依次记录发生的事件,所述事件是针对所述工作流任务状态预先划分定义的。

可选的,所述快照还包含以下一项或多项:创建时间点以及快照状态。

可选的,所述快照状态包括:可用和不可用。

可选的,所述当所述工作流任务状态出现异常时,根据最新可用的快照对所述事件流中的事件进行回溯的步骤包括:当所述工作流任务状态出现异常时,根据所述异常的原因更新各个快照的快照状态,当所述快照与所述异常的原因关联时,将所述快照状态更新为不可用,否则保持所述快照的快照状态为可用;查找最新的快照状态为可用的快照,并根据找到的快照在所述事件流中确定回溯的起始事件;从所述起始事件开始进行回溯。

可选的,所述起始事件为所述事件流中在所述找到的快照之前且距离所述找到的快照最近的事件。

为解决上述技术问题,本发明实施例提供一种工作流任务状态的恢复装置,包括:创建模块,适于在工作流任务状态流转过程中创建事件流,所述事件流包含多个事件和至少一个快照,每一快照包含所述事件流在单个时间点的至少部分信息的集合;回溯模块,适于当所述工作流任务状态出现异常时,根据最新可用的快照进行对所述事件流中的事件进行回溯。

可选的,所述创建模块包括:记录子模块,适于在所述工作流任务状态流转过程中,依次记录发生的事件,所述事件是针对所述工作流任务状态预先划分定义的。

可选的,所述快照还包括以下一项或多项:创建时间点以及快照状态。

可选的,所述快照状态包括可用和不可用。

可选的,所述回溯模块包括:状态更新子模块,适于当所述工作流任务状态出现异常时,根据所述异常的原因更新各个快照的快照状态,当所述快照与所述异常的原因关联时,将所述快照状态更新为不可用,否则保持所述快照的快照状态为可用;查找子模块,适于查找最新的快照状态为可用的快照,并根据找到的快照在所述事件流中确定回溯的起始事件;回溯子模块,适于从所述起始事件开始进行回溯。

可选的,所述起始事件为所述事件流中在所述找到的快照之前且距离所述找到的快照最近的事件。

为解决上述技术问题,本发明实施例提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述恢复方法的步骤。

为解决上述技术问题,本发明实施例提供一种计算设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述恢复方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例在工作流任务状态流转过程中创建事件流,所述事件流可以包含多个事件,所述事件是将工作流任务状态的流转环节按照预先划分定义得到的;所述事件流还可以包含至少一个快照,每一快照可以包含所述事件流在单个时间点的至少部分信息的集合,由此可知,快照可以记录在创建快照的时间点之前完成流转的各个事件及事件信息。当所述工作流任务状态出现异常时,通过查找最新可用的快照记录的事件信息可以恢复相应的事件。本发明技术方案可以从最新可用的快照切入事件进行回溯,从而可以避免重新回溯整个事件流,降低事件恢复过程的复杂度,从而实现高效恢复异常事件,提高事件恢复效率。

进一步,当所述工作流任务状态出现异常时,根据异常的原因更新各个快照的快照状态,以便确定快照是否可以用于恢复事件,当所述快照与所述异常的原因关联时,所述快照可能由于事件状态异常导致该快照记录的事件信息无效,因而可以将所述快照状态更新为不可用。如果所述快照与所述异常的原因无关联,那么可以保持所述快照的快照状态为可用。在确定快照状态后,可以通过查找最新可用的快照确定需要回溯的起始事件,并从所述起始事件开始恢复事件。需要回溯的起始事件可以通过快照记录的事件信息确定。本发明技术方案不会出现因快照与所述异常的原因关联而导致重新恢复整个事件流的情况,能够提高事件恢复效率。

附图说明

图1是本发明实施例的一种工作流任务状态的恢复方法的流程示意图;

图2是图1所示步骤s102的一种具体实施方式的流程示意图;

图3是本发明实施例的一种工作流任务状态的恢复装置的结构示意图。

具体实施方式

本领域技术人员理解,如背景技术所言,当工作流任务状态发生异常时,若采用单纯事件流的恢复方式需要重新回溯整个事件流,若采用传统状态机的恢复方式也可能因无法恢复有向有环图的事件而导致重新回溯整个事件流,事件恢复效率低下。

本发明实施例在工作流任务状态流转过程中创建事件流,所述事件流可以包含多个事件,所述事件是将工作流任务状态的流转环节按照预先划分定义得到的;所述事件流还可以包含至少一个快照,每一快照可以包含所述事件流在单个时间点的至少部分信息的集合,由此可知,快照可以记录在创建快照的时间点之前完成流转的各个事件及事件信息。当所述工作流任务状态出现异常时,通过查找最新可用的快照记录的事件信息可以恢复相应的事件。本发明技术方案可以从最新可用的快照切入事件进行回溯,一方面因快照记录的事件信息能够恢复有向有环图的事件状态,另一方面可以避免重新回溯整个事件流,降低事件恢复过程的复杂度,从而实现高效恢复异常事件,提高事件恢复效率。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例的一种工作流任务状态的恢复方法的流程示意图。所述工作流任务状态的变化和流转过程往往对应着一个任务的执行过程。在所述工作流任务状态流转过程中创建事件流,所述事件流可以包含多个事件和至少一个快照,所述事件是将工作流任务状态的流转环节按照预先划分定义的;每个快照可以包含所述事件流在单个时间点的至少部分信息的集合,也即在某个单个事件点时,事件流中的一部分或全部的信息。当所述工作流任务状态在流转过程中出现异常时,可以通过最新可用的快照记录的事件信息恢复针对所述工作流任务状态预先划分定义的事件,从而恢复工作流任务状态。

进一步地,图1所示的工作流任务状态的恢复方法可以包括以下步骤:

步骤s101:在工作流任务状态流转过程中创建事件流,所述事件流包含多个事件和至少一个快照,每一快照包含所述事件流在单个时间点的至少部分信息的集合;

步骤s102:当所述工作流任务状态出现异常时,根据最新可用的快照对所述事件流中的事件进行回溯。

具体而言,在工作流任务状态流转之前,可用预先对所述工作流任务状态的流转划分定义多个事件,每个事件表示所述工作流任务状态流转过程中产生的一个具体的流转环节。在步骤s101中,在工作流任务状态的流转过程中创建事件流,所述事件流可以包括多个事件,通过各个事件的流转,可以形成完整的事件流。

所述事件流还可以包括一个快照或多个快照。快照是在所述工作流任务状态流转过程中完成创建的。创建快照前可以预先确定待创建的快照数量以及为所述工作流任务状态流转过程中的哪个或哪些事件创建快照。一般而言,若一个或多个事件完成阶段性工作后可以创建快照。快照的创建过程依赖于事件流的事件(也即流转环节)状态,是在事件流的流转过程中完成的。

一般情况下,在所述工作流任务状态或事件流的流转过程中创建快照可以有两种方式。一种是根据预设触发条件创建快照,也即在工作流任务状态流转过程中,如果符合预设触发条件,则自动触发创建快照;另一种是手动创建快照,也即在工作流任务状态流转过程中,根据需要手动触发创建快照。在实际应用中,为满足不同应用业务需求,在某些特定场景中,需要临时增加快照以记录事件信息,此时可以采用手动创建快照的方式创建快照。例如,当工作流任务状态的流转过程中出现突发事件,所述突发事件不属于预先划分定义的事件时,可以为所述突发事件手动创建快照以记录突发事件的实际信息,灵活适应实际业务需求。

作为一个非限定性例子,如果预设触发条件包括完成收费事件、完成线上定时出具发票事件、完成账单汇总事件,那么在所述工作任务流状态流转过程中,将分别在流转到所述收费事件、所述线上定时出具发票事件、所述账单汇总事件后自动触发创建快照。如果因业务需要而将线上定时出具发票事件更改为线下即时出具发票事件,那么在这种情况下,就可以为线下即时出具发票事件手动触发创建快照。

进一步地,创建快照的目的是为了记录所述事件流在单个时间点的全部或部分事件的信息集合。具体而言,所述信息集合可以包括以下一项或多项:事件生成时间、类型、版本、状态机及每个状态的循环次数、业务数据等,所述业务数据是指与所述事件相关联的附加数据。有些事件的流转可能关联着一个或多个业务数据,因而在事件流转过程中,往往需要同时处理或存储与事件关联的业务数据。例如,金额计算事件完成后可以自动流转至扣费事件。又例如,收费事件完成后可以自动流转至出具发票事件。本领域技术人员可以根据实际需要变化出更多实施例,在此不予赘述。

值得一提的是,由于所述快照可以包含某个单个事件的状态机及每个状态的循环次数,因而所述快照可以处理有向有环图的工作流任务状态流转过程,无需重新恢复整个事件流,可以提高事件恢复效率。

进一步地,所述快照还包含以下一项或多项:创建时间点以及快照状态。创建时间点是指创建快照或生成快照的时间,用于记录快照的创建时间。由此可知,新创建(也即创建时间点最新)的快照可以获取到该快照之前的各个快照包含的事件流在单个时间点的信息集合。创建快照时可以为快照设置快照状态。由于新创建的快照可以包含事件流中已经流转完成的事件的全部信息,因而可以将最新创建的快照的快照状态设置为可用。当所述工作流任务状态出现异常时,可以基于最新可用的快照回溯事件。在一定条件下,快照状态可以更新,例如在创建新的快照后,可以将新的快照之前的“旧”快照的快照状态设置为不可用。

进一步地,所述快照还可以包含所有预先划分定义的事件标识(例如,所述快照可以包含创建该快照之前流转完成的事件标识,各个事件标识按照事件完成的顺序排序)。通过查询快照的内容,可以得到目前已经完成的事件的事件标识,进而可以根据预先定义的事件推知后续还要继续执行的事件的事件标识。此外,所述快照还可以包括预定义的快照的数量以及当前快照的编号,以便查找任一快照就可以得到预定义的快照的数量以及当前快照的位置。

进一步地,在步骤s102中,当所述工作流任务状态出现异常时,可以根据最新可用的快照进行快照状态回溯,进而对所述事件流中的事件进行回溯。进行事件回溯可以采用现有的状态机方式进行恢复。

作为一个非限定性例子,一并参考图1和图2,图1中步骤s102具体可以包括如下步骤:

步骤s1021:当所述工作流任务状态出现异常时,根据所述异常的原因更新各个快照的快照状态,当所述快照与所述异常的原因关联时,将所述快照状态更新为不可用,否则保持所述快照的快照状态为可用;

步骤s1022:查找最新的快照状态为可用的快照,并根据找到的快照在所述事件流中确定回溯的起始事件;

步骤s1023:从所述起始事件开始进行回溯。

具体而言,在步骤s1021中,首先根据所述异常的原因按照时间由新及旧的顺序更新各个快照的快照状态。如果快照与所述异常的原因没有关联,则保持快照状态,也即所述快照的快照状态仍为可用。如果所述快照与所述异常的原因关联时,根据所述异常的原因,确定与之关联的快照的个数,并依次更新与所述异常的原因关联的快照,即将快照状态更新为不可用,当快照状态为不可用时,在恢复所述工作流任务状态时,忽略该快照。例如,事件流预先定义事件a、事件b、事件c以及事件d,并预设创建快照的创建时间点分别为事件a完成后创建快照a、事件b完成后创建快照b、事件c完成后创建快照c以及事件d完成后创建快照d。假设在事件流转过程中,事件流转至事件a并完成,此时可以创建快照a,同时可以将快照a的快照状态设置为可用;类似的方式可以创建快照b,并将快照b的快照状态设置为可用,此时快照b包含事件a和事件b的信息集合,因而可将快照a的快照状态设置为不可用;类似的,事件c流转完成后可以创建快照c,快照c的快照状态设置为可用,同时将快照a和快照b的快照状态设置为不可用。若在事件流从事件c流转至事件d时,事件d发生异常,则不会创建快照d。若事件d与快照c的快照状态没有关联,那么快照c的快照状态仍保持为可用。又例如,为数据流通的事件流预先定义单价计价事件、收费事件以及出具收费凭据事件,并预先定义在单价计价事件后创建单价计价快照、在收费事件后创建收费快照、在出具收费凭据事件后创建出具收费凭据快照。当该数据流通的事件流完成收费事件时,一方面,可以自动触发创建收费快照,设置收费快照的快照状态为可用,且设置单价计价快照的快照状态为不可用;另一方面,所述事件流将从收费事件流转至出具收费凭据事件。如果此时数据供应方调整数据单价,也即所述工作流任务状态出现异常,而收费快照与所述异常的原因(也即单价计价事件发生变化导致所述工作流任务状态异常)有关联,所述收费快照的快照状态将由可用更新为不可用。

进一步地,在步骤s1022中,可以通过查找快照状态进行回溯,如果查找到的快照状态为不可用,则忽略当前快照,前进至下一个快照进行判断;当查找到最新可用的快照时,切入所述快照,从所述快照中确定恢复所述事件流的起始事件。所述起始事件可以为所述事件流中在所述找到的快照之前且距离所述找到的快照最近的事件。

进一步地,在步骤s1023中,从找到的起始事件开始事件回溯。此时,可以根据业务需要,基于所述快照包含的某个单个事件点的一部分或全部的信息采用状态机方式恢复事件,也即从所述起始事件开始,继续进行所述工作流任务状态的流转。

综合上述描述,可以看出,在数据流通中,相比现有的单纯事件流恢复方式以及传统的状态机恢复方式,基于快照恢复所述工作流状态任务的优势如下:首先,可以简化工作流任务状态恢复过程,且可以处理有向有环图的工作流任务状态;其次,可以根据快照状态跳跃式恢复事件,无需重新恢复整个事件流,提高了事件恢复效率;可以为突发事件手动创建快照,灵活地应用于各种实际数据流通业务。

图3是本发明实施例的一种工作流任务状态的恢复装置的结构示意图。图3所示的恢复装置3可以用于实施上述图1所示实施例中工作流任务状态的恢复方法的技术方案。

具体地,所述恢复装置3可以包括:创建模块31和回溯模块32。

其中,所述创建模块31适于在工作流任务状态流转过程中创建事件流,所述事件流包含多个事件和至少一个快照,每一快照包含所述事件流在单个时间点的至少部分信息的集合;所述回溯模块32,适于当所述工作流任务状态出现异常时,根据最新可用的快照进行对所述事件流中的事件进行回溯。

具体地,所述创建模块31可以包括:记录子模块311,适于在所述工作流任务状态流转过程中,依次记录发生的事件,所述事件是针对所述工作流任务状态预先划分定义的。

进一步地,所述快照还包括以下一项或多项:创建时间点以及快照状态。

进一步地,所述快照状态包括可用和不可用。

进一步地,所述回溯模块32可以包括:状态更新子模块321、查找子模块322和回溯子模块323。其中,所述状态更新子模块321,适于当所述工作流任务状态出现异常时,根据所述异常的原因更新各个快照的快照状态,当所述快照与所述异常的原因关联时,将所述快照状态更新为不可用,否则保持所述快照的快照状态为可用;所述查找子模块322,适于查找最新的快照状态为可用的快照,并根据找到的快照在所述事件流中确定回溯的起始事件;所述回溯子模块323,适于从所述起始事件开始进行回溯。

进一步地,所述起始事件为所述事件流中在所述找到的快照之前且距离所述找到的快照最近的事件。

关于所述恢复装置3的工作原理、工作方式的更多内容,可以参照上述对图1所示实施例或者图1和图2所示实施例中的相关描述,这里不再赘述。

进一步地,本发明实施例还公开了一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1所示实施例或者图1和图2所示实施例所述方法的步骤。优选地,所述存储介质可以包括计算机可读存储介质。优选地,所述存储介质可以包括rom、ram、磁盘或光盘等。

进一步地,本发明实施例还公开了一种计算设备,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1所示实施例或者图1和图2所示实施例所述方法的步骤。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

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