一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

工作流程处理方法、设备、系统及可读存储介质与流程

2022-12-20 02:26:32 来源:中国专利 TAG:


1.本技术涉及工作流技术领域,特别是涉及一种工作流程处理方法、设备、系统及可读存储介质。


背景技术:

2.工作流是针对工作中具有固定程序的常规活动而提出的一个概念,通过将工作活动分解定义的任务、过程、角色和规则来进行执行和监控,达到提高生产组织水平和工作效率的目的。
3.传统工作流引擎用数据库作为数据存储工具,在处理工作流程(人工工作流程、自动工作流程)时需要不停地与数据库交互。在工作流程的处理过程中,会产生如流程上下文、流程变量、任务等缓存数据储存在数据库中,当任务执行完成后则会清除这些数据。因此,当有大量缓存数据产生时,会导致工作流引擎与数据库的交互变慢,工作流程整体流转效率低,系统吞吐低,且高度依赖数据库。因此,现有技术中亟需一种可以提高工作流程处理效率的工作流程处理方法。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高工作流程处理效率的工作流程处理方法、设备、系统及可读存储介质。
5.第一方面,本技术提供了一种工作流程处理方法。所述方法包括:
6.主工作流引擎获取目标工作流程,并判断所述目标工作流程是否为自动工作流程;
7.在确定所述目标工作流程为自动工作流程的情况下,从至少一个从工作流引擎中选择目标从工作流引擎;
8.调用所述目标从工作流引擎执行所述目标工作流程。
9.在其中一个实施例中,所述调用所述目标从工作流引擎执行所述目标工作流程,包括:
10.将所述自动工作流程的流程定义发送至所述目标从工作流引擎,并指示所述目标从工作流引擎根据所述流程定义执行所述自动工作流程。
11.在其中一个实施例中,所述从至少一个从工作流引擎中选择目标从工作流引擎,包括:
12.从状态管理模块获取所述至少一个从工作流引擎的状态信息,所述状态管理模块用于管理多个从工作流引擎的状态信息;
13.根据所述状态信息确定目标从工作流引擎。
14.在其中一个实施例中,所述调用所述目标从工作流引擎执行所述目标工作流程,包括:
15.将所述目标工作流程的流程标识发送至所述目标从工作流引擎,所述流程标识包
括所述目标工作流引擎对应的流程定义在流程定义管理模块中的标识,所述流程定义管理模块包括多个自动工作流程的流程定义。
16.在其中一个实施例中,在所述调用所述目标从工作流引擎执行所述目标工作流程之后,还包括:
17.获取所述目标工作流程的执行结果。
18.第二方面,本技术还提供了一种工作流程处理方法。所述方法包括:
19.从工作流引擎接收执行目标工作流程的指示信息,所述目标工作流程包括主工作流引擎识别得到的自动工作流程;
20.响应于所述指示信息,执行所述目标工作流程。
21.在其中一个实施例中,所述响应于所述指示信息,执行所述目标工作流程包括:
22.从所述主工作流引擎获取所述目标工作流程的流程定义;
23.响应于所述指示信息,基于所述流程定义执行所述目标工作流程。
24.在其中一个实施例中,所述方法还包括:
25.发送状态信息至状态管理模块,所述状态管理模块用于管理多个从工作流引擎的状态信息。
26.在其中一个实施例中,所述响应于所述指示信息,执行所述目标工作流程,包括:
27.获取所述目标工作流程的流程标识,所述流程标识包括所述从工作流引擎对应的流程定义在流程定义管理模块中的标识,所述流程定义管理模块包括多个自动工作流程的流程定义;
28.根据所述流程标识,从所述流程定义管理模块获取所述目标工作流程的流程定义;
29.基于所述流程定义执行所述目标工作流程。
30.在其中一个实施例中,所述响应于所述指示信息,基于所述流程定义执行所述目标工作流程之后,还包括:
31.在执行完成所述目标工作流程的情况下,发送所述目标工作流程的执行结果。
32.第三方面,本技术还提供了一种工作流程处理设备。所述工作流程处理设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面、第二方面中任一方法所述的方法的步骤。
33.第四方面,本技术还提供了一种工作流程处理系统,所述系统包括主工作流引擎和至少一个从工作流引擎,所述主工作流引擎用于执行上述第一方面中任一项所述的方法的步骤,所述至少一个从工作流引擎用于执行上述第二方面中任一项所述的方法的步骤。
34.第五方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面、第二方面中任一方法所述的方法的步骤。
35.上述工作流程处理方法、设备、系统及可读存储介质,通过主工作流引擎获取目标工作流程,并判断所述目标工作流程是否为自动工作流程;在确定所述目标工作流程为自动工作流程的情况下,从至少一个从工作流引擎中选择目标从工作流引擎;调用所述目标从工作流引擎执行所述目标工作流程。上述工作流程处理方法,使得主工作流引擎将自动工作流程分离出来,调用从工作流引擎处理自动工作流程,从而减轻与主工作流引擎配合
的数据库的缓存压力,使其不必受限于人工任务占用的资源,释放了主工作流引擎的运算资源,提高主工作流引擎的处理效率。另一方面,将自动工作流程交由从工作流引擎处理,减少了主工作流引擎单独处理所有工作流程时,因人工工作流程可能暂时停滞所产生的拥堵时间,提高了工作流程的整体流转效率,从整体上减少了所有工作流程完成的总时间。
36.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
37.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
38.图1为一个实施例中工作流程处理方法的应用环境图;
39.图2为一个实施例中工作流程处理方法的流程示意图;
40.图3为一个实施例中从工作流引擎处理自动工作流程方法的流程示意图;
41.图4为一个实施例中主、从工作流引擎与状态管理模块数据交互方法的流程示意图;
42.图5为一个实施例中主、从工作流引擎与流程定义管理模块数据交互方法的流程示意图;
43.图6为一个具体实施例中工作流程处理架构的结构框图;
44.图7为一个具体实施例工作流程处理方法的流程示意图。
具体实施方式
45.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
46.除另作定义外,本技术所涉及的技术术语或者科学术语应具有本技术所属技术领域具备一般技能的人所理解的一般含义。在本技术中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本技术中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本技术中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本技术中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本技术中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
47.以下所使用的术语“模块”、“单元”等为可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以硬件来实现,但是软件,或者软件和硬件的组合的实现也是可能并被构想的。
48.本技术实施例提供的工作流程处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。本技术实施例中,主工作流引擎可以设置在终端102或服务器104上。所述主工作流引擎可以从终端102或服务器104获取目标工作流程,并判断所述目标工作流程是否为自动工作流程。在确定所述目标工作流程为自动工作流程的情况下,从至少一个从工作流引擎中选择目标从工作流引擎。所述从工作流引擎可以设置在终端102或服务器104上。可以理解的,当主工作流引擎设置在终端102上时,所述从工作流引擎还可以设置在另一个与终端102能够数据互通的终端上。主工作流引擎选择目标从工作流引擎后,调用所述目标从工作流引擎执行所述目标工作流程。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
49.工作流是针对工作中具有固定程序的常规活动而提出的一个概念,通过将工作活动分解定义的任务、过程、角色和规则来进行执行和监控,达到提高生产组织水平和工作效率的目的。本技术中为便于理解和描述,将工作流统一描述为工作流程。在处理工作流程时,如果遇到人工工作流程则会暂停所述工作流程的处理,待人工介入处理之后,所述工作流程才会继续下一步的处理。因此处理人工工作流程时在等待人工介入的过程中,工作流程所产生的状态数据就会一直存活并保存在数据库中,只有当工作流程处理完成后所述状态数据才会被清除。而自动工作流程的处理则不存在等待人工的过程,无论处理成功与否,自动工作流程都会处理结束并将相应的状态数据清除。所以,如果多个人工工作流程在处理时均需要等待人工介入,则会导致状态数据大批量地累积在数据库中,占用大量的数据库资源导致数据库吞吐量下降、算力降低,不仅人工工作流程之间会相互影响,也会影响自动工作流程的处理效率,导致所有工作流程整体的处理时间变长、处理效率降低。
50.基于此,本技术实施例提供一种工作流程处理方法,以至少解决上述技术问题。如图2所示,所述工作流程处理方法包括:
51.s2101:主工作流引擎获取目标工作流程,并判断所述目标工作流程是否为自动工作流程。
52.本技术实施例中,目标工作流程由至少一个工作任务组成,所述工作任务包括人工任务或自动任务。所述目标工作流程包括主工作流引擎从流程发布系统获取到的工作流程,所述目标工作流程包括人工工作流程或自动工作流程。所述主工作流引擎获取目标工作流程包括主动从所述流程发布系统请求目标工作流程,或接收所述流程发布系统发布的目标工作流程。所述主工作流引擎获取目标工作流程后,判断所述目标工作流程是否为自动工作流程。所述判断所述目标工作流程是否为自动工作流程包括,判断所述目标工作流程中是否包括人工任务,若包括至少一个人工任务则确定所述目标工作流程为人工工作流程,若不包括人工任务则确定所述目标工作流程为自动工作流程。
53.本技术实施例中,所述主工作流引擎既可以处理人工工作流程,也可以处理自动工作流程。所述主工作流引擎在处理工作流程时,会与主工作流数据库交互配合以将产生的数据存入所述主工作流数据库中。所述主工作流引擎包括werkflow、openwfe等工作流引擎。所述主工作流数据库通常选用的数据库包括mysql、oracle等数据库。
54.s2103:在确定所述目标工作流程为自动工作流程的情况下,从至少一个从工作流引擎中选择目标从工作流引擎。
55.本技术实施例中,主工作流引擎在确定目标工作流程为自动工作流程的情况下,可以将所述目标工作流程发送至从工作流引擎进行处理,以减轻主工作流数据库的压力。本技术实施例所提供的工作流程处理方法中,包括至少一个从工作流引擎用于处理自动工作流程。主工作流引擎从至少一个从工作流引擎中选择目标从工作流引擎包括,基于至少一个从工作流引擎的状态信息选择目标从工作流引擎。所述状态信息包括工作状态、空闲状态和故障状态中的任意一个。可以理解的,所述主工作流引擎优先选择处于空闲状态的从工作流引擎作为目标从工作流引擎。在其他实施例中,主工作流引擎从至少一个从工作流引擎中选择目标从工作流引擎还包括,基于各个从工作流引擎当前处理工作流程的数量选择目标从工作流引擎。主工作流引擎优先选择当前处理工作流程数量最少的从工作流引擎作为目标从工作流引擎。在其他实施例中,主工作流引擎还可以基于其他条件选择目标从工作流引擎,如各个从工作流引擎历史累积处理工作流程数量等,本技术对此不作具体限制。
56.s2105:调用所述目标从工作流引擎执行所述目标工作流程。
57.本技术实施例中,主工作流引擎在确定目标从工作流引擎后,调用所述目标从工作流引擎执行所述目标工作流程。所述调用所述目标从工作流引擎执行所述目标工作流程包括,直接或间接调用所述目标从工作流引擎。其中,所述直接调用所述目标从工作流引擎包括,主工作流引擎获取所有从工作流引擎的调用信息并存储在主工作流数据库中,确定目标从工作流引擎后,基于目标从工作流引擎的调用信息发送执行目标工作流程的指示信息至目标从工作流引擎。所述间接调用所述目标从工作流引擎包括,向从工作流引擎管理模块发送调用指令,所述从工作流引擎管理模块基于所述调用指令调用所述目标从工作流引擎。其中,所述从工作流引擎管理模块用于管理所有从工作流引擎的调用信息,所述调用指令包括目标从工作流引擎的调用信息和目标工作流程的指示信息。
58.本技术实施例中,所述至少一个从工作流引擎用于处理自动工作流程。所述目标从工作流引擎在处理目标工作流程时,会与目标从工作流数据库交互配合以将产生的数据存入所述目标从工作流数据库中。所述至少一个从工作流引擎可以参考主工作流引擎选用,可以相同也可以不同。由于从工作流引擎只用于处理自动工作流程,无需存储大量状态数据,所以目标从工作流数据库可以选择轻量级的高性能数据库,如h2数据库、hsqldb数据库等。
59.本技术实施例中,相应地,还提供一种从工作流引擎处理自动工作流程的方法,如图3所示,所述方法包括:
60.s2201:从工作流引擎接收执行目标工作流程的指示信息,所述目标工作流程包括主工作流引擎识别得到的自动工作流程。
61.s2203:响应于所述指示信息,执行所述目标工作流程。
62.本技术实施例中,所述主工作流引擎识别得到的自动工作流程包括上述步骤s201中主工作流引擎获取目标工作流程,判断并确定为自动工作流程的目标工作流程,此处不再赘述。从工作流引擎在执行目标工作流程之前,会接收执行所述目标工作流程的指示信息。所述接收执行所述目标工作流程的指示信息包括直接或间接接收所述目标工作流程的
指示信息。与上述步骤s2105中所述相应地,所述直接接收包括接收主工作流引擎发送的指示信息。所述间接接收包括接收从工作流管理模块发送的指示信息。
63.本技术实施例中,通过上述工作流程处理方法,使得主工作流引擎将自动工作流程分离出来,调用从工作流引擎处理自动工作流程,从而减轻与主工作流引擎配合的主工作流数据库的缓存压力,使其不必受限于人工任务占用的资源,释放了主工作流数据库的运算资源,提高了主工作流引擎处理工作流程的效率。另一方面,将自动工作流程交由从工作流引擎处理,减少了主工作流引擎单独处理所有工作流程时,因人工工作流程可能暂时停滞所产生的拥堵时间,提高了工作流程的整体流转效率,从整体上减少了所有工作流程完成的总时间,提高了工作流程处理的效率。
64.为进一步释放主工作流数据库资源,提高主工作流引擎算力,本技术实施例提供一种主工作流引擎选择目标从工作流引擎的方法。在步骤s2103中,所述从至少一个从工作流引擎中选择目标从工作流引擎包括:
65.s3101:从状态管理模块获取所述至少一个从工作流引擎的状态信息,所述状态管理模块用于管理多个从工作流引擎的状态信息。
66.s3103:根据所述状态信息确定目标从工作流引擎。
67.相应地,本技术实施例提供的工作流程执行方法还包括:
68.s3201:从工作流引擎发送状态信息至状态管理模块,所述状态管理模块用于管理多个从工作流引擎的状态信息。
69.本技术实施例中,主工作流引擎可以基于至少一个从工作流引擎的状态信息选择目标从工作流引擎。所述状态信息包括工作状态信息、工作数量信息、工作时间信息中的至少一个。其中,所述工作状态信息包括工作状态、空闲状态和故障状态中的任意一个。所述工作数量信息包括当前执行的工作流程数量、历史累积完成工作流程数量、预设时间内完成工作流程数量中的至少一个。所述工作时间信息包括完成历史工作流程的总时间和/或完成单个工作流程的平均时间。所述状态信息描述了至少一个从工作流的当前和/或历史状态,主工作流引擎可以根据不同的状态信息按需灵活选择目标从工作流引擎。如主工作流引擎可以优先选择处于空闲状态的目标从工作流引擎。在其他一些实施例中,对于需要快速反馈执行结果的目标工作流程,主工作流引擎还可以选择完成单个工作流程的平均时间最少的目标从工作流引擎,当然,主工作流引擎还可以综合考虑多个从工作流的多个状态信息确定目标从工作流引擎,本技术对主工作流引擎基于哪些状态信息确定目标从工作流引擎不作具体限制。
70.本技术实施例中,可以使用状态管理模块管理多个从工作流引擎的状态信息,以进一步释放主工作流数据库的存储资源。所述状态管理模块可以选用如nacos、eureka等服务组件。如图4所示,从工作流引擎将自身状态信息至状态管理模块。可以理解的,所述从工作流引擎发送状态信息至状态管理模块包括,从工作流引擎在启动时发送状态信息至状态管理模块。在其他实施例中,所述从工作流引擎发送状态信息至状态管理模块还包括,在处理工作流程前发送状态信息、处理工作流程中发送状态信息、处理工作流程完成后发送状态信息、以预设周期发送状态信息中的至少一种。在另一些实施例中,从工作流引擎停止服务时从状态管理模块中删除自身的状态信息。当主工作流引擎需要调用从工作流引擎执行自动工作流程时,如图4所示,从状态管理模块获取所述至少一个从工作流引擎的状态信
息,再基于上述选择方式选择目标从工作流引擎。可以理解的,所述选择目标从工作流引擎的方法可以由主工作流引擎执行,也可以由状态管理模块执行。
71.本技术实施例中,通过使用状态管理模块统一管理所有从工作流引擎的状态信息,使得从工作流引擎的状态状态信息不必再占用主工作流数据库的资源,进一步释放了主工作流数据库的存储压力,提高了主工作流数据库的吞吐量和数据交互的速度,进而提高了工作流程的处理效率。另一方面,主工作流引擎基于状态信息确定目标从工作流引擎,可以进一步优化工作流程的执行过程,使运算资源的分配更为合理,减少了工作流程处理的总时间,提高了工作流程处理的总效率。
72.本技术实施例中,步骤s2105中,主工作流引擎调用所述目标从工作流引擎执行所述目标工作流程包括:
73.s4101:将所述自动工作流程的流程定义发送至所述目标从工作流引擎,并指示所述目标从工作流引擎根据所述流程定义执行所述自动工作流程。
74.相应地,本技术实施例上述步骤s2203中从工作流引擎响应于所述指示信息,执行所述目标工作流程包括:
75.s4201:从所述主工作流引擎获取所述目标工作流程的流程定义。
76.s4203:响应于所述指示信息,基于所述流程定义执行所述目标工作流程。
77.本技术实施例中,所述流程定义包括目标工作流程的执行方案。具体而言,所述执行方案包括所述目标工作流程中各工作任务的执行顺序、执行标准、执行主体、执行对象等。在其他实施例中,所述流程定义还包括不同工作流程之间的执行方案,如定义多个工作流程之间的执行顺序、嵌套关系、选择关系等。主工作流引擎在确定目标从工作流引擎后,将自动工作流程的流程定义发送至所述目标从工作流引擎,目标从工作流引擎基于所述流程定义执行所述目标工作流程。
78.在本技术一些实施例中,所述流程定义还包括多个工作流程之间的执行方案,因此相应地,步骤s4101中将所述自动工作流程的流程定义发送至所述目标从工作流引擎还包括,若所述自动工作流程定义包括多个工作流程并列执行,则将所述多个工作流程及流程定义优先发送至多个目标从工作流引擎。主工作流引擎调用多个从工作流引擎同时执行多个并列执行的工作流程,可以有效提高工作流程执行的整体效率。在其他实施例中,若所述自动工作流程定义包括多个工作流程需嵌套执行,则将所述多个工作流程及流程定义优先发送至同一目标从工作流引擎。其中,所述嵌套包括一个工作流程执行的必要条件是另一个工作流程的执行结果。可以理解的,当两个工作流程的执行涉及嵌套关系,则其中一个工作流程的执行需要等待其他工作流程执行完成,如将这些工作流程发送至不同从工作流执行,传输执行结果需要占用资源,且流程定义不完善时会有传输错误的可能,影响工作流程的正常执行,因此将涉及嵌套的工作流程发送至同一个从工作流引擎执行可以提高工作流程的执行效率和执行成功率。
79.考虑到自动工作流程的流程定义储存在主工作流数据库中也需要占用一定资源,本技术实施例通过引入流程定义管理模块来进一步提高主工作流数据库的可用资源。在步骤s2105中,所述调用所述目标从工作流引擎执行所述目标工作流程包括:
80.s5101:将所述目标工作流程的流程标识发送至所述目标从工作流引擎,所述流程标识包括所述目标工作流引擎对应的流程定义在流程定义管理模块中的标识,所述流程定
义管理模块包括多个自动工作流程的流程定义。
81.相应地,本技术实施例上述步骤s2203中从工作流引擎响应于所述指示信息,执行所述目标工作流程包括:
82.s5201:获取所述目标工作流程的流程标识,所述流程标识包括所述从工作流引擎对应的流程定义在流程定义管理模块中的标识,所述流程定义管理模块包括多个自动工作流程的流程定义。
83.s5203:根据所述流程标识,从所述流程定义管理模块获取所述目标工作流程的流程定义。
84.s5205:基于所述流程定义执行所述目标工作流程。
85.本技术实施例中,如图5所示,当主工作流引擎判断并确定目标工作流程为自动工作流程后,将所述目标工作流程的流程标识发送至所述目标从工作流引擎,并将所述目标工作流程定义及所述流程标识发送至流程定义模块。所述流程定义管理模块包括多个自动工作流程的流程定义。可以理解的,上述主工作流引擎与目标从工作流引擎和流程定义管理模块的数据交互过程不分先后,可以以任意顺序或同时进行数据交互,本技术对此不作限制。当目标从工作流引擎接收到执行目标工作流程的指示信息后,根据所述流程标识,从所述流程定义管理模块获取所述目标工作流程的流程定义,并基于所述流程定义执行所述目标工作流程。在其他实施例中,所述流程标识还可以由流程定义管理模块生成,并反馈至主工作流引擎。当目标从工作流引擎接收到执行目标工作流程的指示信息后,可以从主工作流引擎或流程定义模块中任意一方获取所述流程标识。在另一些实施例中,从工作流引擎还可以从流程定义管理模块中加载所有自动工作流程的流程定义,当接收到指示信息和流程标识后,从加载的所有流程定义中匹配目标工作流程相应的流程定义,再基于所述流程定义执行目标工作流程。本技术实施例中,所述流程定义管理模块可以使用如redis、ssdb等储存系统。
86.本技术实施例中,通过使用流程定义管理模块统一管理所有自动流程定义,使得自动流程定义不必再占用主工作流数据库的资源,进一步释放了主工作流数据库的存储压力,提高了主工作流数据库的吞吐量和数据交互的速度,进而提高了工作流程的处理效率。另一方面,将流程定义交由流程定义管理模块统一管理,在主工作流引擎向目标从工作流引擎发布自动工作流程和指示信息时,不必再通过主工作流数据库向从工作流引擎发送流程定义,减少了工作流程处理过程中主工作流数据库的交互次数,进一步提高了主工作流引擎和主工作流数据库的算力资源。
87.在一些实施例中,主工作流引擎需要及时获取各工作流程的执行结果,以对工作流程整体进行有效管理。基于此,本技术实施例在步骤s2105之后,即在所述调用所述目标从工作流引擎执行所述目标工作流程之后,还包括:
88.s6101:获取所述目标工作流程的执行结果。
89.相应地,本技术实施例中,在上述步骤s2203从工作流引擎响应于所述指示信息,执行所述目标工作流程之后,还包括:
90.s6201:在执行完成所述目标工作流程的情况下,发送所述目标工作流程的执行结果。
91.本技术实施例中,所述执行结果包括执行成功或执行失败。所述执行成功包括目
标工作流程的所有任务全部执行成功。所述执行失败包括流程定义执行失败或运行环境执行失败。所述流程定义执行失败包括流程定义错误导致目标工作流程中至少一个任务执行失败。所述运行环境执行失败包括运行系统、运行环境、数据库资源等导致至少一个任务执行失败,如系统崩溃、软件崩溃、数据库资源不足等。主工作流引擎可以定期询问从工作流引擎对于自动工作流程的执行结果。在其他实施例中,从工作流引擎也可以在目标工作流程执行完成后主动向主工作流引擎发送执行结果。
92.本技术实施例中,还可以通过设置状态数据储存模块来进一步释放数据库可用资源。主工作流引擎将执行人工工作流程产生的人工状态数据异步写入状态数据储存模块。从工作流引擎将执行自动工作流程产生的自动状态数据异步写入状态数据储存模块。其中,所述状态数据包括工作流引擎在执行工作流程时产生的数据,具体而言包括工作流程实例数据、工作任务数据、变量数据等。所述状态数据储存模块包括elasticsearch(es大数据平台)、mongodb等数据平台,本技术对此不作限制。
93.下面结合图6、图7来说明本技术一个详细实施例的系统架构和工作流程的执行过程。本技术实施例提供的工作流程处理方法可以由如图6所示的工作流程处理架构实现,主工作流引擎与mysql数据库配合作为主工作流执行人工工作流程。轻量化工作流微服务群包括多个从工作流引擎和nacos服务发现中心,从工作流引擎用于处理自动工作流程,nacos服务发现中心作为状态管理模块获取从工作流的状态信息。es大数据平台用于储存在执行工作流程时产生的状态数据。redis作为流程定义管理模块用于管理多个自动工作流程的流程定义。
94.本技术一个具体实施例中,工作流程的处理过程如图7所示,主工作流引擎从工作流程发布系统获取工作流程、工作流程定义,并判断目标工作流程是否为自动工作流程。在确定目标工作流程为自动工作流程后,向redis发送自动工作流程定义、流程标识。从工作流引擎在启动时将状态信息发送至nacos。主工作流引擎从nacos获取至少一个从工作流引擎的状态信息,并基于状态信息确定目标从工作流引擎。主工作流引擎在确定目标从工作流引擎之后,向从工作流引擎发送自动工作流程、流程标识、指示信息。从工作流引擎根据流程标识从redis获取目标工作流程的流程定义。主工作流引擎执行人工工作流程,并将执行过程中产生的人工状态数据异步发送至es大数据平台,执行完成后得到人工工作流程的执行结果。从工作流引擎基于流程定义执行目标工作流程,并将执行过程中产生的人工状态数据异步发送至es大数据平台,执行完成后将自动工作流程的执行结果发送至主工作流引擎。主工作流引擎将人工工作流程、自动工作流程的执行结果发送至工作流程发布系统。
95.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
96.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的工作流程处理方法的工作流程处理设备。该设备所提供的解决问题的实现方案与上述方法中所记
载的实现方案相似,在此不再赘述。
97.在一个实施例中,提供了一种工作流程处理设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述工作流程处理方法实施例的步骤。
98.在一个实施例中,提供了一种工作流程处理系统,所述系统包括主工作流引擎和至少一个从工作流引擎,所述主工作流引擎用于执行上述任一项所述主工作流引擎处理工作流程方法实施例的步骤,所述至少一个从工作流引擎用于执行上述任一项所述从工作流引擎处理工作流程方法实施例的步骤。
99.上述工作流程处理设备、系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
100.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述工作流程处理方法实施例的步骤。
101.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
102.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
103.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
104.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献