System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机领域,具体而言,本申请涉及一种工作流执行方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
技术介绍
1、工作流引擎是一种通过可视化拖拽编程的方式来设计流程,降低学习门槛,提高效率的低代码技术,用户可以通过工作流引擎创建工作流实例,通过创建的工作流实例来实现编程中的各种代码特性,例如条件判断等功能。
2、目前通过工作流引擎创建的工作流实例,在执行过程中,将整个工作流实例中的各个应用模块实例的组合作为一个整体一次性在容器上执行,无法支持较为复杂的高级功能,例如,无法支持至少两个程序实例的并发执行。
技术实现思路
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、触发器生成对应的统一资源定位系统url地址,若触发器检测到针对url地址的调用指示,则生成触发指令。
28、在一些可能的实施方式中,基于创建指示信息创建对应的工作流实例之后,还包括:
29、生成针对所创建的工作流实例的目标工作流标识,将目标工作流标识推送至工作流消息队列;其中,工作流消息队列中包括已创建的工作流实例的工作流标识;
30、通过触发器生成触发指令,包括:
31、若接收到针对目标工作流标识的执行指令,将工作流实例的触发器推送到应用模块实例的执行队列中,通过触发器生成触发指令。
32、在一些可能的实施方式中,针对每一应用模块实例,执行应用模块实例,包括:
33、获取与应用模块实例对应的路径语法表达式;
34、解析路径语法表达式,确定路径语法表达式指向的执行顺序在前的应用模块实例标识;
35、获取应用模块实例标识对应的输出数据;
36、基于所获取的输出数据确定应用模块实例的执行参数,并基于所确定的执行参数执行应用模块实例。
37、在一些可能的实施方式中,方法还包括:
38、每执行完一个应用模块实例,将应用模块实例的执行参数更新到全局变量数据中;
39、获取应用模块实例标识对应的输出数据,包括:
40、从全局变量数据中获取应用模块实例标识对应的输出数据;其中,全局变量数据中包括多个应用模块实例标识和每一应用模块实例标识对应的应用模块实例的执行参数;执行参数中包括应用模块实例的输出数据。
41、另一方面,本申请实施例提供了一种工作流执行装置,该装置包括:
42、接收模块,用于接收工作流实例的创建指示信息;其中,创建指示信息中包括待创建的工作流实例中各应用模块实例的信息以及各应用模块实例的执行顺序指示信息;执行顺序指示信息用于指示各应用模块实例串行或并行执行;
43、创建模块,用于若接收到执行工作流实例的触发指令,响应于触发指令,基于创建指示信息创建对应的工作流实例;
44、第一执行模块,用于基于执行顺序指示信息通过不同容器执行工作流实例中的各应用模块实例;
45、第二执行模块,用于针对工作流实例中的任一应用模块实例,若基于执行顺序指示信息确定应用模块实例的后置的应用模块实例包括至少两个,则同时执行后置的至少两个应用模块实例。
46、在一些可能的实施方式中,第一执行模块在基于执行顺序指示信息通过不同容器执行工作流实例中的各应用模块实例时,具体用于:
47、基于执行顺序指示信息从各应用模块实例中确定出并发实例和非并发实例;其中,并发实例为与需要与至少一个不同的应用程序实例同时执行的应用模块实例;
48、将非并发实例推送到第一队列,以基于执行顺序指示信息通过与第一队列对应的多个第一容器执行非并发实例;
49、将并发实例推送到第二队列,以基于执行顺序指示信息通过与第二队列对应的多个第二容器执行并发实例。
50、在一些可能本文档来自技高网...
【技术保护点】
1.一种工作流执行方法,其特征在于,包括:
2.根据权利要求1所述的工作流执行方法,其特征在于,所述容器包括多个第一容器和多个第二容器;
3.根据权利要求1所述的工作流执行方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的工作流执行方法,其特征在于,所述方法还包括:
5.根据权利要求3或4所述的工作流执行方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的工作流执行方法,其特征在于,所述创建指示信息还包括针对触发器的选择指令;
7.根据权利要求6所述的工作流执行方法,其特征在于,所述通过所述触发器生成所述触发指令,包括如下任一种:
8.根据权利要求6所述的工作流执行方法,其特征在于,所述基于所述创建指示信息创建对应的工作流实例之后,还包括:
9.根据权利要求1所述的工作流执行方法,其特征在于,针对每一应用模块实例,执行所述应用模块实例,包括:
10.根据权利要求9所述的工作流执行方法,其特征在于,所述方法还包括:
11.一种工作流执行装置,其特
12.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-10任一项所述工作流执行方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的工作流执行方法的步骤。
...【技术特征摘要】
1.一种工作流执行方法,其特征在于,包括:
2.根据权利要求1所述的工作流执行方法,其特征在于,所述容器包括多个第一容器和多个第二容器;
3.根据权利要求1所述的工作流执行方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的工作流执行方法,其特征在于,所述方法还包括:
5.根据权利要求3或4所述的工作流执行方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的工作流执行方法,其特征在于,所述创建指示信息还包括针对触发器的选择指令;
7.根据权利要求6所述的工作流执行方法,其特征在于,所述通过所述触发器生成所述触发指令,包括如下任一种:
8.根据权利要求6所述的工作流执...
【专利技术属性】
技术研发人员:温冠超,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。