本发明涉及计算机,尤其涉及一种工作流调度方法、装置、设备及介质。
背景技术:
1、工作流调度是指对业务流程中的任务进行排序和调度,按照预期的规则将任务分配给可用的资源,以达到最优化的工作流管理。工作流调度通常采用图形化的方式来描述任务之间的依赖关系和执行顺序,以便进行调度和控制,在工作流调度中,常常涉及到任务的分支、汇聚、并行、串行等不同执行方式和控制方法,以确保工作流程的顺畅和高效执行。
2、在现有技术中,常通过条件节点进行分支判断,即根据不同的条件值将工作流分支成不同的路径,从而实现流程控制和任务调度。
3、但采用条件节点进行分支判断,需要将分支判断逻辑编码在节点中,如果需要修改分支判断逻辑,就需要修改节点的代码,当工作流较为复杂时,修改节点代码会变得非常繁琐,容易出现错误,并且,节点分支判断逻辑可读性较差,不利于工作流的管理和维护。
技术实现思路
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、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种工作流调度方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,根据工作流中目标节点的至少一个前序节点以及至少一个入边,确定目标节点的当前状态,包括:
3.根据权利要求2所述的方法,其特征在于,根据各前序节点的标记状态以及各入边信息,确定目标节点的当前状态,包括:
4.根据权利要求2所述的方法,其特征在于,根据各前序节点的标记状态以及各入边信息,确定目标节点的当前状态,包括:
5.根据权利要求2所述的方法,其特征在于,根据各前序节点的标记状态以及各入边信息,确定目标节点的当前状态,包括下述任一项:
6.根据权利要求1所述的方法,其特征在于,还包括:依次对执行列表中的各节点进行调度,以供执行线程按调度顺序执行各节点;
7.根据权利要求1所述的方法,其特征在于,还包括:
8.一种工作流调度装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的工作流调度方法。