任务编排调度方法、装置、计算机设备及可读存储介质与流程

文档序号:31152175发布日期:2022-08-17 04:14阅读:129来源:国知局
任务编排调度方法、装置、计算机设备及可读存储介质与流程

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.图1为本发明任务编排调度方法实施例一的流程图;
40.图2为本发明任务编排调度方法实施例二中任务编排调度方法的环境应用示意图;
41.图3是本发明任务编排调度方法实施例二中任务编排调度方法的具体方法流程图;
42.图4为本发明任务编排调度装置实施例三的程序模块示意图;
43.图5为本发明计算机设备实施例四中计算机设备的硬件结构示意图。
具体实施方式
44.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.本发明提供的任务编排调度方法、装置、计算机设备及可读存储介质,适用于计算
机运维技术领域,为提供一种基于组件识别模块、编排录入模块、任务执行模块的任务编排调度方法。本发明通过接收用户端发送的任务请求,从预置的组件池中获取相应于所述任务请求的服务组件,并将所述服务组件设为目标组件;接收所述用户端发送的编排信息;根据所述有向图依次执行多个所述目标组件以得到任务结果,将所述任务结果发送至所述用户端。
46.实施例一:
47.请参阅图1,本实施例的一种任务编排调度方法,包括:
48.s103:接收用户端发送的任务请求,从预置的组件池中获取相应于所述任务请求的服务组件,并将所述服务组件设为目标组件,其中,所述组件池中保存有至少一个服务组件;
49.s104:接收所述用户端发送的编排信息,其中,所述编排信息是具有至少一个用于表征所述目标组件的未执行节点的有向图,所述有向图用于反映各所述目标组件之间的依赖关系;
50.s105:根据所述有向图依次执行多个所述目标组件以得到任务结果,将所述任务结果发送至所述用户端。
51.在示例性的实施例中,所述任务请求中具有至少一个服务名称,所述服务名称是对所述服务组件的服务任务的概括描述,从所述组件池中获取相应于所述任务请求中服务名称的服务组件,并将所述服务组件设为所述目标组件。
52.通过接收所述用户端发送的编排信息,即:具有至少一个未执行节点的有向图;其中,所述有向图用于反映各所述目标组件之间的依赖关系,实现按照用户端的意图对所述目标组件进行编排,使编排后的目标组件后续能够根据用户的意图运行目标组件,并最终获得用户所需的运行结果,于本实施例中,所述有向图为有向无环图,用于表征用户端需要完成其整体任务时,需要调用的目标组件之间的依赖关系,其中,所述有向无环图具有起始节点和终止节点,用于表征执行所述整体任务时的起点和终点。
53.通过根据所述有向图中各目标组件之间的依赖关系,依次执行多个所述目标组件的方式,获得符合用户意图的运行结果,实现了目标组件的选择以及目标组件之间依赖关系的个性化定制,满足了不同用户对服务组件的调用及依赖需求,实现完成用户端所需整体任务,并获得相应于所述整体任务的运行结果。
54.综上,用户端可通过发送任务请求获取其所需的服务组件,及通过发送所述编排信息对所述服务组件进行编排,以构建各所述服务组件之间的依赖关系,再按照所述编排信息中的有向图,执行相应的服务组件以最终得到用户端所需的任务结果,满足了用户端多样化需求,扩大了适用范围。
55.实施例二:
56.本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
57.下面,以在运行有任务编排调度方法的服务器中,从组件池中获取相应于任务请求的目标组件,并根据有向图依次执行相应于未执行节点的目标组件以得到任务结果为例,来对本实施例提供的方法进行具体说明。需要说明的是,本实施例只是示例性的,并不限制本发明实施例所保护的范围。
58.图2示意性示出了根据本技术实施例二的任务编排调度方法的环境应用示意图。
59.在示例性的实施例中,任务编排调度方法所在的服务器2通过网络分别连接开发端3和用户端4;所述服务器2可以通过或多个网络提供服务,网络可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络可以包括无线链路,例如蜂窝链路,卫星链路,wi-fi链路和/或类似物;所述开发端3和用户端4可分别为智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备。
60.图3是本发明实施例提供的一种任务编排调度方法的具体方法流程图,该方法具体包括步骤s201至s205。
61.s201:构建组件池并在所述组件池中构建服务组件,及构建用于触发所述服务组件运行的调度系统,其中,所述服务组件用于运行指定的服务任务,所述组件池用于保存所述服务组件。
62.为确保用户端能够直接调用其所需的服务组件,为用户实现服务任务提供便利,本步骤通过构建组件池并在所述组件池中构建服务组件的方式,为用户提供能够直接被调用的服务组件,用于为用户实现服务任务,同时,通过构建用于触发所述服务组件运行的调度系统的方式,用于为用户提供能够编排多个服务组件的逻辑排序的功能,具有多个服务任务的复杂工作流的实现。
63.在一个优选的实施例中,所述构建组件池并在所述组件池中构建服务组件,及构建用于触发所述服务组件运行的调度系统,包括:
64.s11:构建组件容器,在所述组件容器中配置计算资源使所述组件容器转为所述组件池。
65.本步骤中,所述计算资源一般指计算机程序运行时所需的cpu资源、内存资源、硬盘资源和网络资源。
66.s12:接收开发端发送的服务代码和服务参数,将所述服务代码保存至所述组件池中,以作为所述组件池中的服务组件,其中,所述服务代码是用于运行所述服务任务的计算机代码;
67.s13:构建调度系统,将所述服务组件在所述组件池的保存位置作为所述调度系统的环境变量,使所述调度系统能够通过所述环境变量触发所述服务组件运行,以及,将所述服务参数录入所述调度系统中,以作为所述调度系统触发所述服务组件的触发策略。
68.本步骤中,使用zookeeper是作为所述调度系统,其中,所述zookeeper是一种大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。zookeeper的架构通过冗余服务实现高可用性。因此,如果第一次无应答,用户端就可以询问另一台zookeeper主机。zookeeper节点将它们的数据存储于分层的名字空间,非常类似于文件系统或前缀树结构。用户端可以在节点读写,从而以这种方式拥有共享的配置服务。更新是全序的。
69.进一步地,所述服务参数包括负载均衡策略和重试策略;将所述负载均衡策略录入所述调度系统中,使所述调度系统根据所述负载均衡策略控制运行所述服务组件所使用的计算资源数量;将所述重试策略录入所述调度系统中,使所述服务组件出现运行错误或运行失败时,所述调度系统能够根据所述重试策略再次触发所述服务组件运行。其中,所述
负载均衡策略中记载了为所述服务组件运行提供的计算资源的资源上限,所述重试策略中记载了所述服务组件重新运行次数的次数上限。
70.s202:接收开发端发送的新增请求,根据所述新增请求中的服务任务信息在所述组件池中构建服务组件,及将所述新增请求任务中的配置参数录入所述调度系统中,使所述调度系统根据所述配置参数控制相应于所述新增请求的服务组件。
71.为实现进一步的优化组件池,使所述组件池能够持续的提供更多的服务组件,以实现更多样的服务任务,本步骤通过根据所述新增请求中的服务任务信息在所述组件池中构建服务组件,及将所述新增请求任务中的配置参数录入所述调度系统中,使所述调度系统根据所述配置参数控制相应于所述新增请求的服务组件的方式,实现为组件池持续提供新的服务任务的服务组件,以持续完善组件池的功能。
72.在一个优选的实施例中,所述根据所述新增请求中的服务任务信息在所述组件池中构建服务组件,及将所述新增请求任务中的配置参数录入所述调度系统中,包括:
73.s21:接收开发端发送的新增请求,提取所述新增请求中的服务代码并将所述服务代码保存至所述组件池中,使所述服务代码转为所述组件池的服务组件,其中,所述服务代码是用于运行所述服务任务的计算机代码;
74.s22:将所述服务组件在所述组件池的保存位置作为所述调度系统的环境变量,使所述调度系统能够通过所述环境变量触发所述服务组件运行;
75.s23:提取所述新增请求中的配置参数,将所述配置参数录入所述调度系统中,使所述调度系统能够根据所述配置参数控制所述服务组件的运行。
76.本步骤中,所述配置参数包括负载均衡策略和重试策略;将所述负载均衡策略录入所述调度系统中,使所述调度系统根据所述负载均衡策略控制运行所述服务组件所使用的计算资源数量;将所述重试策略录入所述调度系统中,使所述服务组件出现运行错误或运行失败时,所述调度系统能够根据所述重试策略再次触发所述服务组件运行。其中,所述负载均衡策略中记载了为所述服务组件运行提供的计算资源的资源上限,所述重试策略中记载了所述服务组件重新运行次数的次数上限。
77.s203:接收用户端发送的任务请求,从预置的组件池中获取相应于所述任务请求的服务组件,并将所述服务组件设为目标组件,其中,所述组件池中保存有至少一个服务组件。
78.本步骤中,所述任务请求中具有至少一个服务名称,所述服务名称是对所述服务组件的服务任务的概括描述,从所述组件池中获取相应于所述任务请求中服务名称的服务组件,并将所述服务组件设为所述目标组件。
79.在一个优选的实施例中,所述接收用户端发送的任务请求,从预置的组件池中获取相应于所述任务请求的服务组件,包括:
80.s31:向用户端发送具有至少一个服务名称的组件可视化信息。
81.本步骤中,所述组件可视化信息是一种具有至少一个表征服务组件的服务名称的组件页面,所述服务名称是对相应于所述服务组件的服务任务的概括描述。
82.s32:识别所述用户端在所述组件可视化信息上的操作事件,根据所述操作事件生成至少具有所述服务名称的待选信息;
83.本步骤中,所述操作事件是指用户端在组件可视化信息上进行的js事件,例如:点
击操作、拖拽操作等。所述js事件是指javascript事件,其为通过点击、拖拽等操作选择设置在组件页面中的服务名称,实现触发选择相应于所述服务名称的服务组件的javascript函数的事件。根据所述操作事件,识别用户端选择的服务名称并汇总,形成所述待选信息。
84.s33:接收所述用户端根据所述待选信息生成的所述任务请求,其中,所述任务请求中记载有所述待选信息中的服务名称。
85.本步骤中,所述用户端通过点击“确定”、“提交”等按钮,将先前通过选择服务名称所形成的待选信息,转为所述任务请求,用以保证用户端发送的任务请求是经其所确认的,保证了任务请求内容的可靠性。
86.s34:从所述组件池中获取相应于所述待选信息中服务名称的服务组件。
87.s204:接收所述用户端发送的编排信息,其中,所述编排信息是具有至少一个用于表征所述目标组件的未执行节点的有向图,所述有向图用于反映各所述目标组件之间的依赖关系。
88.为实现按照用户端的意图对所述目标组件进行编排,使编排后的目标组件后续能够根据用户的意图运行目标组件,并最终获得用户所需的运行结果,本步骤通过接收所述用户端发送的编排信息,即:具有至少一个未执行节点的有向图;其中,所述有向图用于反映各所述目标组件之间的依赖关系。
89.于本实施例中,所述有向图为有向无环图,用于表征用户端需要完成其整体任务时,需要调用的目标组件之间的依赖关系,其中,所述有向无环图具有起始节点和终止节点,用于表征执行所述整体任务时的起点和终点。
90.s205:根据所述有向图依次执行多个所述目标组件以得到任务结果,将所述任务结果发送至所述用户端。
91.为完成用户端所需整体任务,并获得相应于所述整体任务的运行结果,本步骤根据所述有向图中各目标组件之间的依赖关系,依次执行多个所述目标组件的方式,获得符合用户意图的运行结果,实现了目标组件的选择以及目标组件之间依赖关系的个性化定制,满足了不同用户对服务组件的调用及依赖需求。
92.在一个优选的实施例中,所述根据所述有向图依次执行多个所述目标组件以得到任务结果,包括:
93.s51:获取所述有向图位于首位的至少一个未执行节点,并运行相应于所述未执行节点的目标组件以得到运行结果,根据所述运行结果将相应于所述未执行节点的目标组件转为遗留组件,及将相应于所述遗留组件的未执行节点转为已执行节点。
94.本步骤中,所述有向图为有向无环图,用于表征用户调用目标组件的逻辑顺序,以及各所述目标组件之间的依赖关系。
95.具体地,所述获取所述有向图位于首位的至少一个未执行节点,并运行相应于所述未执行节点的目标组件以得到运行结果,根据所述运行结果将相应于所述未执行节点的目标组件转为遗留组件,及将相应于所述遗留组件的未执行节点转为已执行节点,包括:
96.s511:将所述有向图中位于首位的至少一个未执行节点设为定时节点,将相应于所述定时节点的至少一个目标组件设为定时组件,并触发所述定时组件运行;
97.本步骤中,通过识别有向图中起始节点,得到所述有向图的起始位置;通过获取依赖所述起始节点的未执行节点,得到所述有向图中位于首位的至少一个未执行节点设为定
时节点。
98.s512:判断所述定时组件是否在预置的定时时间阈值内生成运行结果;若生成运行成功的运行结果,则根据所述运行结果将所述定时组件转为遗留组件,及将相应于所述遗留组件的定时节点转为已执行节点;若生成运行失败的运行结果,则向所述调度系统发送任务失败通知;若未生成运行结果,则通过所述调度系统根据其中的重试策略重新触发所述服务组件运行。
99.本步骤中,通过对定时组件设置定时时间阈值,以判断所述定时组件是否能够在规定的时间内完成其中的服务任务,以确保及时识别超时的定时组件。
100.进一步地,所述结判断所述定时组件是否在预置的定时时间阈值内生成运行结果;若生成运行成功的运行结果,则根据所述运行结果将所述定时组件转为遗留组件,及将相应于所述遗留组件的定时节点转为已执行节点;若生成运行失败的运行结果,则向所述调度系统发送任务失败通知;若未生成运行结果,则通过所述调度系统根据其中的重试策略重新触发所述服务组件运行,包括:
101.s5121:判断所述定时组件是否在预置的定时时间阈值内生成运行结果;
102.s5122:若生成所述运行结果,则提取所述运行结果中的任务标签并识别所述任务标签的内容;如果所述内容为任务成功,则根据所述运行结果将所述定时组件转为遗留组件,及将相应于所述遗留组件的定时节点转为已执行节点;如果所述内容为任务失败,则向所述调度系统发送任务失败通知;其中,所述任务标签是对运行结果的内容所做的概括性描述。
103.本步骤中,通过提取运行结果中任务标签并识别所述任务标签的内容的方式,确定所述运行结果的性质;如果所述运行结果为任务成功,则可以根据有向图执行下一目标组件;如果所述运行结果为任务失败,则需要向所述调度系统发送所述任务失败通知,以便于用户端通过所述调度系统获知出现失败的目标组件。
104.s5123:若未生成所述运行结果,则调用所述调度系统的重试策略重新触发所述定时组件运行,并再次判断所述定时组件是否在所述时间预置内生成运行结果;若再次生成所述运行结果,则提取所述运行结果中的任务标签并识别所述任务标签的内容;如果所述内容为任务成功,则根据所述运行结果将所述定时组件转为遗留组件,及将相应于所述遗留组件的定时节点转为已执行节点;如果所述内容为任务失败,则向所述调度系统发送任务失败通知;若再次未生成所述运行结果,则向所述调度系统发送具有相应于所述定时组件的组件名称的组件异常通知。
105.本步骤中,通过重新触发所述定时组件运行的方式,以进一步的确保所述定时组件能够生成所述运行结果,避免定时组件因暂时的信息阻塞而未能及时生成运行结果,就直接判定定时组件异常,导致相应于所述任务请求的服务任务完成度低下的情况发生。
106.同时,再次通过所述定时时间阈值的方式识别定时组件的异常,以锁定异常的原因,即:如果重新触发定时组件运行生成了运行结果,则判定前一次未生成运行结果的原因仅为定时组件暂时阻塞;如果重新触发定时组件运行仍未生成运行结果,则可以判定所述定时组件本身出现了异常,随即应向调度系统发送组件异常通知。
107.以及,通过识别运行结果中任务标签的方式,以锁定定时组件中服务任务是否出现异常,如果所述运行结果中的任务标签内容为任务失败,则可以判定为定时组件的服务
任务出现了异常,并向调度系统发送任务失败通知。
108.s52:将遗留组件的未执行节点转为已执行节点的有向图设为更新图,将所述更新图发送至所述用户端。
109.为确保用户端能够实时监测用户端的整体任务已执行到有向图的哪一节点,本步骤通过将遗留组件的未执行节点转为已执行节点的有向图设为更新图,并将所述更新图发送至所述用户端的方式,实时的向用户端发送当前任务的执行阶段,以确保用户端对整体任务的进展进行把控。
110.s53:将所述遗留组件所生成的运算结果设为遗留结果,识别所述有向图中依赖所述已执行节点的至少一个未执行节点,运行相应于所述依赖所述已执行节点的所述未执行节点的目标组件,以得到依赖所述遗留结果的运算结果,并将依赖所述已执行节点的未执行节点转为已执行节点,及将所述相应于所述依赖所述已执行节点的所述未执行节点的目标组件转为遗留组件,直至所述有向图中位于末位的至少一个未执行节点均转为已执行节点为止,将相应于位于末尾的已执行节点的遗留组件所生成的运算结果设为任务结果。
111.本步骤中,通过日志拖尾的方式监听有向图中上一未执行节点是否转为已执行节点,若是,则将所述遗留组件所生成的运算结果设为遗留结果,并识别所述有向图中依赖所述已执行节点的至少一个未执行节点,运行相应于所述依赖所述已执行节点的所述未执行节点的目标组件,以得到依赖所述遗留结果的运算结果,其中,所述日志拖尾是基于消息中间件监听有向图中的未执行节点是否转为已执行节点的计算机进程。于本实施例中,通过canal监听上游的未执行节点是否已转为已执行节点,并从相应于所述已执行节点的遗留组件获取遗留信息,将所述遗留信息转发至相应于当前位置的未执行节点的目标组件的方式实现所述日志拖尾。因此,无需手动的将上游的遗留组件所生成的遗留结果录入到当前的目标组件中,提高了各目标组件整体的运行效率。
112.需要说明的是,所述canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件,目前,canal主要支持了mysql的binlog解析,解析完成后才利用canal client用来处理获得的相关数据。mysql binlog是二进制日志文件,用于记录mysql的数据更新或者潜在更新(比如delete语句执行删除而实际并没有符合条件的数据,在mysql主从复制中就是依靠的binlog。
113.具体地,所述将所述遗留组件所生成的运算结果设为遗留结果,识别所述有向图中依赖所述已执行节点的至少一个未执行节点,运行相应于所述依赖所述已执行节点的所述未执行节点的目标组件,以得到依赖所述遗留结果的运算结果,并根据所述依赖所述遗留结果的运算结果,将所述相应于所述依赖所述已执行节点的所述未执行节点的目标组件转为遗留组件,并将相应于所述遗留组件未执行节点转为已执行节点,直至所述有向图中位于末位的至少一个未执行节点均转为已执行节点为止,包括:
114.s531:判断相应于所述遗留组件的已执行节点是否处于所述有向图的末位;
115.s532:若是,将所述遗留组件生成的运行结果设为任务结果;
116.s533:若否,则将所述遗留组件生成的运行结果设为遗留结果,并将所述有向图中依赖所述已执行节点的至少一个未执行节点设为定时节点,及将相应于依赖所述已执行节点的定时节点的目标组件设为依赖所述遗留组件的定时组件。
117.本步骤中,如果当前遗留组件的已执行节点,已与有向图的终止节点关联,则说明
所述遗留组件的已执行节点处于所述有向图的末位。
118.s534:将所述遗留结果发送至所述依赖所述遗留组件的定时组件,判断所述定时组件在预置的遗留时间阈值内是否接收到所有依赖的所述遗留组件所发送的遗留结果;
119.s535:若是,则触发依赖所述遗留组件的定时组件运行;
120.s536:若否,则判断所述定时组件接收到的遗留结果是否能够覆盖预置的遗留标签;如果能够覆盖所述遗留标签,则触发依赖所述遗留组件的定时组件运行;如果不能覆盖所述遗留标签,则暂停依赖所述遗留组件的定时组件运行。
121.本步骤中,在每个目标组件中设置可选项(optional),以作为所述遗留标签,其中,所述遗留标签用于描述所述目标组件依赖的目标组件所发送的运行结果;
122.当所述目标组件转为定时组件时,所述定时组件将用于接收其依赖的遗留组件所发送的遗留结果;判断在所述遗留时间阈值内,所述定时组件是否接收到所有依赖的遗留组件所发送的遗留结果;若是,则直接触发所述定时组件运行即可;若否,则提取所述定时组件中的可选项,将所述定时组件接收到的遗留结果与可选项进行一一比对,判断所述接收到的遗留结果是否能够覆盖所述可选项;
123.若是,则直接触发所述定时组件运行,以避免因某个不重要的目标组件出现异常或任务失败,导致相应于所述任务请求的整个任务无法进行的问题发生,保证了多任务处理的鲁棒性。
124.若否,则暂时停止触发所述定时组件运行,以避免所述定时组件因缺少必要的遗留结果而强行运行,最终生成错误的任务结果的问题发生,保证了多任务处理的可靠性。
125.s537:触发所述依赖所述遗留组件的定时组件运行之后,判断所述依赖所述遗留组件的定时组件是否在预置的定时时间阈值内生成运行结果;若生成运行成功的运行结果,则根据所述运行结果将所述依赖所述遗留组件的定时组件转为遗留组件,及将相应于转为所述遗留组件的定时节点转为已执行节点;若生成运行失败的运行结果,则向所述调度系统发送任务失败通知;若未生成运行结果,则通过所述调度系统根据其中的重试策略重新触发所述依赖所述遗留组件的定时组件运行。
126.优选的,所述根据所述有向图依次执行多个所述目标组件以得到任务结果之后,所述方法还包括:
127.将所述任务结果上传至区块链中。
128.需要说明的是,基于所述任务结果得到对应的摘要信息,具体来说,摘要信息由所述任务结果进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证所述任务结果是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
129.实施例三:
130.请参阅图4,本实施例的一种任务编排调度装置1,包括:
131.组件识别模块13,用于接收用户端发送的任务请求,从预置的组件池中获取相应
于所述任务请求的服务组件,并将所述服务组件设为目标组件,其中,所述组件池中保存有至少一个服务组件;
132.编排录入模块14,用于接收所述用户端发送的编排信息,其中,所述编排信息是具有至少一个用于表征所述目标组件的未执行节点的有向图,所述有向图用于反映各所述目标组件之间的依赖关系;
133.任务执行模块15,用于根据所述有向图依次执行多个所述目标组件以得到任务结果,将所述任务结果发送至所述用户端。
134.可选的,所述任务编排调度装置1还包括:
135.创建模块11,用于构建组件池并在所述组件池中构建服务组件,及构建用于触发所述服务组件运行的调度系统,其中,所述服务组件用于运行指定的服务任务,所述组件池用于保存所述服务组件。
136.可选的,所述创建模块11还包括:
137.组件池单元111,用于构建组件容器,在所述组件容器中配置计算资源使所述组件容器转为所述组件池;
138.组件创制单元112,用于接收开发端发送的服务代码和服务参数,将所述服务代码保存至所述组件池中,以作为所述组件池中的服务组件,其中,所述服务代码是用于运行所述服务任务的计算机代码;
139.调度创建单元113,用于构建调度系统,将所述服务组件在所述组件池的保存位置作为所述调度系统的环境变量,使所述调度系统能够通过所述环境变量触发所述服务组件运行,以及,将所述服务参数录入所述调度系统中,以作为所述调度系统触发所述服务组件的触发策略。
140.可选的,所述任务编排调度装置1还包括:
141.组件新增单元12,用于接收开发端发送的新增请求,根据所述新增请求中的服务任务信息在所述组件池中构建服务组件,及将所述新增请求任务中的配置参数录入所述调度系统中,使所述调度系统根据所述配置参数控制相应于所述新增请求的服务组件。
142.可选的,所述组件新增单元12还包括:
143.代码转换单元121,用于接收开发端发送的新增请求,提取所述新增请求中的服务代码并将所述服务代码保存至所述组件池中,使所述服务代码转为所述组件池的服务组件,其中,所述服务代码是用于运行所述服务任务的计算机代码;
144.变量配置单元122,用于将所述服务组件在所述组件池的保存位置作为所述调度系统的环境变量,使所述调度系统能够通过所述环境变量触发所述服务组件运行;
145.参数配置单元123,用于提取所述新增请求中的配置参数,将所述配置参数录入所述调度系统中,使所述调度系统能够根据所述配置参数控制所述服务组件的运行。
146.可选的,所述组件识别模块13还包括:
147.可视化单元131,用于向用户端发送具有至少一个服务名称的组件可视化信息;
148.操作识别单元132,用于识别所述用户端在所述组件可视化信息上的操作事件,根据所述操作事件生成至少具有所述服务名称的待选信息;
149.任务输入单元133,用于接收所述用户端根据所述待选信息生成的所述任务请求,其中,所述任务请求中记载有所述待选信息中的服务名称;
150.组件获取单元134,用于从所述组件池中获取相应于所述待选信息中服务名称的服务组件。
151.可选的,所述任务执行模块15还包括:
152.执行识别单元151,用于获取所述有向图位于首位的至少一个未执行节点,并运行相应于所述未执行节点的目标组件以得到运行结果,根据所述运行结果将相应于所述未执行节点的目标组件转为遗留组件,及将相应于所述遗留组件的未执行节点转为已执行节点;
153.更新输出单元152,用于将遗留组件的未执行节点转为已执行节点的有向图设为更新图,将所述更新图发送至所述用户端;
154.编排执行单元153,用于将所述遗留组件所生成的运算结果设为遗留结果,识别所述有向图中依赖所述已执行节点的至少一个未执行节点,运行相应于所述依赖所述已执行节点的所述未执行节点的目标组件,以得到依赖所述遗留结果的运算结果,并将依赖所述已执行节点的未执行节点转为已执行节点,及将所述相应于所述依赖所述已执行节点的所述未执行节点的目标组件转为遗留组件,直至所述有向图中位于末位的至少一个未执行节点均转为已执行节点为止,将相应于位于末尾的已执行节点的遗留组件所生成的运算结果设为任务结果。
155.本技术方案应用于计算机运维的过程优化领域,通过接收用户端发送的任务请求,从预置的组件池中获取相应于所述任务请求的服务组件,并将所述服务组件设为目标组件,以及接收所述用户端发送的编排信息,并根据所述有向图依次执行多个所述目标组件以得到任务结果,以实现业务过程优化的技术效果。
156.实施例四:
157.为实现上述目的,本发明还提供一种计算机设备5,实施例三的任务编排调度装置的组成部分可分散于不同的计算机设备中,计算机设备5可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个应用服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器51、处理器52,如图5所示。需要指出的是,图5仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
158.本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器51还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例三的任务编排调度装置的程序代码等。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
159.处理器52在一些实施例中可以是中央处理器(central processing unit,cpu)、
控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如运行任务编排调度装置,以实现实施例一和实施例二的任务编排调度方法。
160.实施例五:
161.为实现上述目的,本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器52执行时实现相应功能。本实施例的计算机可读存储介质用于存储实现所述任务编排调度方法的计算机程序,被处理器52执行时实现实施例一和实施例二的任务编排调度方法。
162.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
163.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
164.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1