本说明书涉及计算机,尤其涉及一种云原生工作流引擎实现方法、系统、介质及电子设备。
背景技术:
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、确定该子任务对应的若干副本任务,并针对每一个副本任务,根据所述多集群的基本信息,从所述多集群中,确定满足该副本任务的调度条件的集群,作为该副本任务的调度集群;
32、在执行该子任务时,确定所述多集群中该子任务的调度集群的资源信息,并根据确定出的资源信息以及预设的负载条件,从满足所述负载条件的调度集群中,确定执行该子任务的调度集群,作为该子任务的指定集群,具体包括:
33、在执行该子任务的该副本任务时,确定所述多集群中该副本任务的调度集群的资源信息,并根据确定出的资源信息以及预设的负载条件,从满足所述负载条件的调度集群中,确定执行该副本任务的调度集群,作为该副本任务的指定集群;
34、将该子任务发送给所述指定集群,以使所述指定集群执行该子任务,具体包括:
35、将该副本任务发送给所述指定集群,以使所述指定集群执行该副本任务。
36、可选地,在将该子任务发送给所述指定集群之后,所述方法还包括:
37、监测该子任务的执行情况;
38、当监测到该子任务执行完成时,向所述指定集群发送资源释放指令,以使所述指定集群删除执行该子任务所需的文件。
39、可选地,在确定所述待执行任务的调度图之前,所述方法还包括:
40、确定所述任务文件的格式为预先存储的声明格式。
41、本说明书提供了一种云原生工作流引擎实现系统,所述系统包括注入模块、输入模块、任务调度模块以及任务执行模块,所述系统应用于多集群,其中:
42、所述注入模块用于响应于用户输入的待执行任务的任务文件,根据所述任务文件,确定所述待执行任务的调度图;
43、所述输入模块用于根据所述调度图,确定所述待执行任务的子任务队列;
44、所述任务调度模块用于针对所述输入模块确定的所述待执行任务的子任务队列的每一个子任务,从所述多集群中,确定该子任务的调度集群,并将确定出的该子任务的所述调度集群发送给所述任务执行模块;
45、所述任务执行模块用于在接收到所述任务调度模型发送的该子任务的调度集群时,确定所述多集群中该子任务的调度集群的资源信息,并根据确定出的资源信息以及预设的负载条件,从满足所述负载条件的调度集群中,确定执行该子任务的调度集群,作为该子任务的指定集群,将该子任务发送给所述指定集群,以使所述指定集群执行该子任务,当所述待执行任务的各子任务执行结束时,确定所述待执行任务的执行结果。
46、可选地,所述系统还包括集群管理模块;
47、所述集群管理模块用于获取所述多集群的信息,并存储,其中,所述信息包括资源信息和基本信息;
48、所述任务执行模块具体用于,在接收到所述任务调度模型发送的该子任务的调度集群时,从所述集群管理模块获取所述多集群的资源信息,确定所述多集群中该子任务的调度集群的资源信息。
49、可选地,所述任务调度模块具体用于,获取各集群的基本信息,根据所述多集群的基本信息,从所述多集群中,确定由满足该子任务的调度条件的各集群组成的待选集,根据所述待选集中各集群的基本信息,确定各集群的性能信息的排序,并按照所述排序选择该子任务的调度集群,其中,所述基本信息至少包括性能信息。
50、可选地,所述任务执行模块具体用于,根据确定出的资源信息,判断该子任务的调度集群是否满足预设的负载条件,若是,确定该子任务的调度集群为该子任务的指定集群,若否,将该子任务的调度集群从该子任务的待选集中删除,从删除后的该子任务的待选集中,重新确定该子任务的调度集群,获取重新确定的调度集群的资源信息,并继续判断重新确定的调度集群是否满足所述负载条件,直至确定出该子任务的指定集群为止。
51、可选地,所述任务执行模块还用于,当该子任务的待选集为空集时,检测满足该子任务的调度条件的各集群的资源信息,响应于监测的任一集群的资源信息满足所述负载条件,将满足所述负载条件的集群作为该子任务的指定集群。
52、可选地,所述注入模块具体用于,根据所述任务文件,确定所述待执行任务对应的各子任务以及所述各子任务之间的依赖关系,根据所述各子任务之间的依赖关系,确定所述待执行任务的调度图。
53、可选地,所述输入模块具体用于,按照所述调度图的拓扑结构,对所述调度图进行分解,确定所述待执行任务的子任务队列。
54、可选地,所述任务调度模块具体用于,从所述集群管理模块获取所述多集群的基本信息,确定满足该子任务的调度条件的集群,作为该子任务的调度集群。
55、可选地,所述任务调度模块具体用于,从所述集群管理模块获取所述多集群的基本信息,确定该子任务对应的若干副本任务,并针对每一个副本任务,根据所述多集群的基本信息,从所述多集群中,确定满足该副本任务的调度条件的集群,作为该副本任务的调度集群;
56、所述任务执行模块具体用于,在执行该子任务的该副本任务时,确定所述多集群中该副本任务的调度集群的资源信息,并根据确定出的资源信息以及预设的负载条件,从满足所述负载条件的调度集群中,确定执行该副本任务的调度集群,作为该副本任务的指定集群,并将该副本任务发送给所述指定集群,以使所述指定集群执行该副本任务。
57、可选地,所述系统还包括任务监测模块和资源析构模块;
58、所述任务监测模块用于监测所述子任务队列中各子任务的执行情况;
59、所述资源析构模块用于针对监测的每个子任务,当所述任务监测模块监测到该子任务执行完成时,向该子任务的指定集群发送资源释放指令,以使该子任务的指定集群删除执行该子任务所需的文件。
60、可选地,所述注入模块具体用于,根据预先存储的声明格式,验证所述任务文件的格式,当验证通过时,根据所述任务文件,确定所述待执行任务的调度图。
61、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述云原生工作流引擎实现方法。
62、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述云原生工作流引擎实现方法。
63、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
64、本说明书提供的云原生工作流引擎实现方法,先响应于用户输入的待执行任务的任务文件,根据任务文件,确定待执行任务的调度图。根据调度图,确定待执行任务的子任务队列。然后,针对子任务队列中的每一个子任务,从多集群中,确定该子任务的调度集群。在执行该子任务时,确定多集群中该子任务的调度集群的资源信息,并根据确定出的资源信息以及预设的负载条件,从满足负载条件的调度集群中,确定执行该子任务的调度集群,作为该子任务的指定集群,并将该子任务发送给指定集群,以使指定集群执行该子任务。当待执行任务的各子任务执行结束时,确定待执行任务的执行结果。
65、从上述方法中可以看出,本技术在实现云原生工作流引擎时,先根据用户输入的待执行任务的任务文件,确定待执行任务的调度图,并确定子任务队列。之后,针对子任务队列中的每一个子任务,从多集群中,确定该子任务的调度集群。在执行该子任务时,确定多集群中该子任务的调度集群的资源信息,并根据资源信息以及预设的负载条件,从满足负载条件的调度集群中确定指定集群,并将该子任务发送给指定集群,以使指定集群执行该子任务。当各子任务执行结束时,确定待执行任务的执行结果。使得不同的子任务可以由不同的集群执行,可以更好地执行复杂的、大规模的工作流任务,提高执行速率。