任务调度方法、装置、电子设备及存储介质与流程

文档序号:32852836发布日期:2023-01-06 23:24阅读:41来源:国知局
任务调度方法、装置、电子设备及存储介质与流程

1.本技术涉及大数据处理、数据调度等领域,尤其涉及一种任务调度方法、装置、电子设备及存储介质。


背景技术:

2.在数据中心建设过程中,会涉及大量的数据采集、处理、计算等方面的数据处理任务协同调度工作。作业调度系统(job scheduler)或者说工作流调度系统(workflow scheduler)是一个相对复杂的系统,涉及的内容繁杂。可以将数据调度分为有向无环图(directed acyclic graph,简称dag)工作流类、定时分片系统两类:定时分片系统:重点定位于任务的分片执行场景,如:将一个大的任务拆成多个小任务分配到不同的服务器上执行。
3.dag工作流类:重点定位于任务的调度依赖关系的正确处理。
4.本技术主要基于dag工作流类的调度系统,为了解决跨集群、跨厂商环境中任务调度管理的困难,通过任务调度互联规范实现分布式任务之间的调度互通管理。
5.几乎每个数据平台团队,都会有自己的任务调度系统实现方案,且都强调以自身调度产品完成一个调度工作流,针对一个工作流内部可以通过任务依赖来实现控制。目前,对于大数据数据处理工作来说,一般会涉及到多个数据平台团队支撑不同的大数据任务实现。当前,各厂商、团队的任务调度能力是相互隔离的,任务调度之间无法实现自动对接。在数据处理各环节的串通过程中,高度依赖线下人员的沟通和对接,对于对接的双方而言,沟通的人力成本、时间成本等都过高,并且难以对数据处理全过程实现有效的协同调度、感知和统一管理统筹,存在调度效率低的问题。
6.同时,随着企业对不同的场景进行深度拓展,大数据计算任务的逐渐增多,传统的基于单一集群支撑数据处理已经很难满足企业的发展需求。因此,针对越来越广泛的跨集群、跨厂商环境下大数据分布式任务之间的调度互通支撑,如何提升大数据调度任务的效率,成为亟需解决的问题。


技术实现要素:

7.本技术实施例提供一种任务调度方法、装置、电子设备及存储介质,采用本技术实施例,实现了跨集群、跨厂家下的任务调度互联,提供了一致的开发体验,提高了任务处理效率,有效降低了各平台之间的沟通成本。
8.第一方面,本技术实施例提供一种任务调度方法,应用于第一开放式服务代理,该方法包括:接收来自于第一调度平台所执行的第一任务对应的第一任务调度信息;根据上述第一任务调度信息确定与上述第一任务具有依赖关系第二任务;获取上述第二任务对应的第二任务的基本信息;根据上述第二任务的基本信息、以及全网路由信息,确定由第一开放式服务代理
向第二开放式服务代理发送上述第一任务调度信息的最优传输路径,其中,上述全网路由信息用于记录上述第一开放式服务代理和上述第二开放式服务代理所对应的调度网络的全部路由信息;根据上述最优传输路径向上述第二开放式服务代理发送上述第一任务调度信息,以使上述第二开放式服务代理向上述第二开放式服务代理对应的第二调度平台发送上述第一任务调度信息,并使上述第二调度平台基于上述第一任务调度信息执行上述第二任务。
9.在一些可行的实施方式中,上述方法还包括:上述第一开放式服务代理和上述第二开放式服务代理均按照标准接口格式接入上述调度网络,其中,上述标准接口格式用于定义上述第一开放式服务代理和上述第二开放式服务代理各自的相关信息。
10.在一些可行的实施方式中,上述方法还包括:若上述第一开放式服务代理接入了上述调度网络中的全网运维监控端点,则将上述第一任务的任务状态同步广播至上述全网运维监控端点,其中,上述全网运维监控端点用于记录通过上述调度网络进行任务调度的各个任务的任务状态,上述第一任务的任务状态包括待执行状态、执行状态、成功状态或者失败状态。
11.在一些可行的实施方式中,在上述接收来自于第一调度平台所执行的第一任务对应的第一任务调度之前,上述方法还包括:上述第一开放式服务代理向上述调度网络通过全网广播的方式进行注册,以加入上述调度网络。
12.在一些可行的实施方式中,上述第一开放式服务代理向上述调度网络通过全网广播的方式进行注册,包括:根据上述第一开放式服务代理对应的端点地址、上述第一开放式服务代理对应的上述第一调度平台的标识信息、以及上述第一开放式服务代理对应的端点接入类型中的至少一项,向上述调度网络通过全网广播的方式注册上述第一开放式服务代理,其中,上述第一开放式服务代理对应的端点地址用于表示上述第一开放式服务代理与其它开放式服务代理之间收发消息的地址,上述第一开放式服务代理对应的端点接入类型用于表征上述第一开放式服务代理在上述调度网络中所要连接的网络端点的类型。
13.在一些可行的实施方式中,上述根据上述第一任务调度信息确定与上述第一任务具有依赖关系第二任务,包括:若上述第一任务调度信息中存在与上述第一任务具有依赖关系的后置任务,则将上述后置任务确定为与上述第一任务具有依赖关系的上述第二任务。
14.在一些可行的实施方式中,上述第一任务调度信息,包括以下至少一项:上述第一任务对应的会话的会话标识;上述第一任务的任务标识;上述第一开放式服务代理对应的端点地址;与上述第一任务具有依赖关系的前置任务和后置任务;与上述第一任务具有依赖关系的前置任务的归属端点;与上述第一任务具有依赖关系的后置任务的归属端点。
15.第二方面,本技术实施例提供了一种任务调度装置,该任务调度装置包括:第一确定模块,用于根据上述第一任务调度信息确定与上述第一任务具有依赖关系第二任务;获取模块,用于获取上述第二任务对应的第二任务的基本信息;第二确定模块,用于根据上述第二任务的基本信息、以及全网路由信息,确定由第一开放式服务代理向第二开放式服务代理发送上述第一任务调度信息的最优传输路径,其中,上述全网路由信息用于记录上述第一开放式服务代理和上述第二开放式服务代理所对应的调度网络的全部路由信息;发送模块,用于根据上述最优传输路径向上述第二开放式服务代理发送上述第一任务调度信息,以使上述第二开放式服务代理向上述第二开放式服务代理对应的第二调度平台发送上述第一任务调度信息,并使上述第二调度平台基于上述第一任务调度信息执行上述第二任务。
16.第三方面,本技术实施例提供了一种电子设备,包括处理器和存储器,该处理器和存储器相互连接;上述存储器用于存储计算机程序;上述处理器被配置用于在调用上述计算机程序时,执行上述第一方面所提供的方法。
17.第四方面,本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面所提供的方法。
18.第五方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面所提供的方法。
19.在本技术实施例中,第一调度平台执行第一任务,在第一任务执行完成后,向第一开放式服务代理发送第一任务对应的第一任务调度信息,对于第一开放式服务代理,接收该第一任务调度信息,根据第二任务的基本信息、以及全网路由信息,确定出第一开放式服务代理向第二开放式服务代理发送该第一任务调度信息的最优传输路径,通过该最优传输路径向第二开放式服务代理发送该第一任务调度信息。第二开放式服务代理向第二调度平台发送接收到的第一任务调度信息,使得第二调度平台可以基于接收到的第一任务调度信息开始执行第二任务。传统方式中,针对跨集群、跨厂家之间任务的串接需要高度依赖线下人员的沟通和对接,才能使得第一任务和第二任务顺利执行,对于对接的双方而言,沟通的人力成本、时间成本等都过高,并且难以对数据处理全过程实现有效的协同调度、感知和统一管理统筹,存在调度效率低的问题。采用本技术实施例,在第一调度平台执行完第一任务后,可以通过简单的信息传输,即可使第二调度平台开始执行第二任务,通过单一、简单且优雅的方式支撑任务调度产品之间的标准化对接,提高了任务处理效率,有效降低了各平台之间的沟通成本。
附图说明
20.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例中所需要使用的
附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本技术实施例提供的一种基于数据调度互通协议的网络部署模式;图2是本技术实施例提供的一种全网路由信息管理图;图3是本技术实施例提供的一种服务代理端点路由信息管理的原理图;图4是本技术实施例提供的一种任务关系图;图5是本技术实施例提供的一种服务代理端点之间传输消息的路径示意图;图6是本技术实施例提供的一种任务调度方法的流程示意图;图7是本技术实施例提供的一种基于数据调度互通协议的任务执行流程图;图8是本技术实施例提供的一种基于数据调度互通协议的任务约定配置图;图9是本技术实施例提供的一种基于调度互通协议实现全网拉通的原理图;图10是本技术实施例提供的一种任务调度装置的结构示意图;图11是本技术实施例提供的电子设备的结构示意图。
具体实施方式
22.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.以下结合一些具体示例详细描述本技术实施例中的任务调度方法。
24.可选的,本技术中的任务调度方法的实现是基于数据调度互通协议(open data scheduling interworking protocol api,简称odsi api)实现的,其中,数据调度互通协议的作用如下:在跨集群、跨厂家环境下,基于统一的任务调度互联规范接口将异步松散的数据调度程序进行拉通成为完整链条的“调度程序体系”,通过各调度能力之间透明化的互通来支撑一个完整的工作流。这些异构的调度程序交换包含完成任务所需信息的消息。其中,工作流里面会包括多个处理任务(如第一任务、第二任务等),每个任务可以由不同调度程序来负责完成。
25.可选的,以下详述本技术实施例的网络部署模式,参见图1,图1是本技术实施例提供的一种基于数据调度互通协议的网络部署模式,在图1所示的网络部署模式下,具备以下功能,数据调度网络约定管理、全网数据治理、以及全网运维监控。
26.数据调度网络约定管理:基于数据调度互通协议定义了一致的接口标准。调度服务代理端点(即开放式服务代理,如文中所描述的第一开放式服务代理和第二开放式服务代理):屏蔽了不同任务调度供应商之间调度能力的异构性,实现了标准化对接。每个调度厂家需要开发服务包,实现对应的调度服务代理端点的支持。不同边缘节点上存在相同厂家的调度程序,需要在各自节点都部署数据调度互通协议能力。
27.全网数据治理:接收各服务代理端点发送的血缘信息(即服务代理端点所管理的任务相关的一些基本信息),生成全网数据血缘链路,实现全网数据治理相关应用支撑。
28.全网运维监控:接收各服务代理端点发送的任务状态信息,生成全链路的任务运
行图,实现全网运维监控支撑。
29.其中,边缘节点a使用承载网,即中国电信下一代承载网(chinanet next carrying network),其中,边缘节点是对边缘网关、边缘控制器、边缘服务器等边缘侧多种产品形态的基础共性能力的逻辑抽象,这些产品形态具备边缘侧实时数据分析、本地数据存储、实时网络联接等共性能力,该边缘节点a可提供hadoop(hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据)、k8s(kubernetes,简称k8s,是一个全新的基于容器技术的分布式架构领先方案)、物理机(物理机是相对于虚拟机而言的对实体计算机的称呼,物理机提供给虚拟机以硬件环境)服务。接入该边缘节点a的调度平台为调度平台(厂家a),调度平台(厂家b)。其中,调度服务代理端点(厂家a)、调度服务代理端点(厂家b)均按照数据调度网络约定管理的规定定义了统一的接口标准。厂家a对应的调度服务代理端点和厂家b对应的调度服务代理端点可根据需要连接全网数据治理和全网运维监控。
30.边缘节点b使用数据中心互联(data center interconnect,简称dci)网络,该dci是实现不同数据中心互相通信的一种解决方案,该边缘节点b可提供hadoop、k8s、物理机服务。接入该边缘节点b的调度平台为调度平台(厂家c)。其中,调度服务代理端点(厂家c)按照数据调度网络约定管理的规定定义了统一的接口标准。调度服务代理端点(厂家c)可根据需要连接全网数据治理和全网运维监控。
31.边缘节点c能够实现数据中心互联dci,该边缘节点c可提供hadoop、k8s、物理机服务。接入该边缘节点c的调度平台为调度平台(厂家b)。其中,调度服务代理端点(厂家b)按照数据调度网络约定管理的规定定义了统一的接口标准。调度服务代理端点(厂家b)可根据需要连接全网数据治理和全网运维监控。
32.其中,对于任意一个调度服务代理端点,均具有向全网数据治理和全网运维监控进行信息广播的义务。全网数据治理和全网运维监控是否接收调度服务代理端点发送的信息需要依据其接入类型确定,如果全网数据治理和全网运维监控是轻节点(详见下文描述)接入的类型,则需要判断调度服务代理端点是否在其接收范围,如果不在则不接收调度服务代理端点的广播信息,如果全网数据治理和全网运维监控是全节点(详见下文描述)接入的类型,则接收调度服务代理端点的广播信息。
33.对于任意一个厂家对应的调度服务代理端点来说,可根据实际需要与其他调度服务代理端点建立连接,本技术实施例在此不作任何限定。如图1所示,接入边缘节点a的调度服务代理端点(厂家a)分别与接入边缘节点b的调度服务代理端点(厂家c)、以及接入边缘节点c的调度服务代理端点(厂家b)建立了连接。接入边缘节点a的调度服务代理端点(厂家b)分别与接入边缘节点b的调度服务代理端点(厂家c)、以及接入边缘节点c的调度服务代理端点(厂家b)建立了连接。接入边缘节点b的调度服务代理端点(厂家c)与接入边缘节点c的调度服务代理端点(厂家b)建立了连接。
34.可理解,图1所示的网络部署模式仅为一种示例性的描述,本技术实施例在此不作任何限定。
35.以下详述服务代理端点的入网过程,基于全网路由信息可以实现调度平台的互通,以上述接入边缘节点a的调度平台(厂家a)对应的调度服务代理端点(厂家a)、以及调度平台(厂家b)对应的调度服务代理端点(厂家b)为例,对如何实现调度平台的互通进行说
明,参见图2,图2是本技术实施例提供的一种全网路由信息管理图,如图2所示的全网路由信息所包括的网络有承载网、其他网、dci网,对于任意一个调度服务代理端点可以通过注册的方式接入图2所示的网络,在进行调度服务代理端点注册时,需要提供调度服务代理端点的端点位置、端点类型、厂家名称等信息,向全网路由信息管理进行注册,实现本调度服务代理端点的入网。其中,任意一个调度服务代理端点可以接入以下几种类型的调度枢纽:类型一:调度端点(即除了待接入的调度服务代理端点之外的其他调度服务代理端点):调度全节点:全部连接全链路调度节点信息。
36.调度轻节点:指向性连接链路上的部分调度节点信息。
37.类型二:全网数据治理端点(各厂家按需构建):治理全节点:全部连接全链路调度节点信息。
38.治理轻节点:指向性连接链路上的部分调度节点信息。
39.类型三:全网运维监控端点(各厂家按需构建):监控全节点:全部连接全链路调度节点信息。
40.监控轻节点:指向性连接链路上的部分调度节点信息。
41.其中,如果为轻节点接入方式,在接入申请时需要说明,其可以连接链路上的那些服务端点。
42.对于任意一个调度服务代理端点,在接入调度网络时可以获取全网的路由信息。对于任意一个调度服务代理端点,可以接入全网运维监控端点。全网运维监控端点作为一个基于数据互通下的应用,各厂家可以按照标准接口格式接收各调度服务代理端点发出的任务状态约定的接口格式,进而实现运维监控支撑。对于任意一个调度服务代理端点,可以接入全网数据治理端点。全网数据治理端点作为一个基于数据互通下的应用,各厂家可以按照标准接口格式接收各调度服务代理端点发出的数据血缘约定的接口格式,进而实现相关数据治理应用。
43.如图2所示,调度服务代理端点(厂家a)接入的是调度全节点,调度服务代理端点(厂家b)接入的是调度轻节点。厂家a是按照全连接接入全网运维监控端点和全网数据治理端点的。厂家b是按照指向性连接接入全网运维监控端点和全网数据治理端点的。
44.可理解,图2所示的全网路由信息管理仅为一种示例性的描述,本技术实施例在此不作任何限定。
45.前文描述了服务代理端点入网的过程,以下详述服务代理端点如何实现路由信息管理,参见图3,图3是本技术实施例提供的一种服务代理端点路由信息管理的原理图,如图3所示,数据调度网络约定管理包括任务开发管理约定、服务内容交互约定和节点管理交互约定,该约定用于定义完成特定任务时所用的消息类型,其中,服务内容交互约定是对服务之间交互信息的结构进行约定,任务开发管理约定是对所执行任务的相关信息进行约定,节点管理交互约定是在参与会话(如服务代理端点(厂家a)与服务代理端点(厂家b)之间的会话,即第一开放式服务代理与第二开放式服务代理之间消息往来)的每个端点中应创建相同的约定。
46.其中,任务开发管理约定用于针对任务基本信息及前后涉及依赖任务的说明,实现在跨集群、跨厂家下任务之间依赖关系的定义。为了清楚的描述一个跨集群、跨厂家下的
任务之间的关系,参见图4,图4是本技术实施例提供的一种任务关系图,如图4所示,从图中可以看出,从开始到结束,构成一个多任务处理依赖关系,如图中所示的任务1、任务2、任务3和任务4,其中,任务3开始执行必须依赖于任务1和任务2的完成,任务4开始执行必须依赖于任务3的完成。其中,每个任务可以由不同厂家开发和调度。可理解,图4所示的示例仅为一种示例性的描述,本技术实施例在此不作任何限定。
47.任务开发管理约定也可称为任务开发服务约定(对应于文中描述的任务的基本信息,如第一任务的基本信息、第二任务的基本信息),该任务开发管理约定的具体消息接口,可依据标准化协议规范及任务类型,定义任务之间交换的消息,实现任务之间的标准化对接,消息字段涉及:任务id:本任务的全局唯一id,每个任务可以由不同厂家实现。其中,id为应用身份标识(identity,简称id)。
48.任务类型:数据采集任务、数据交换任务、数据汇聚任务或者数据查询任务等。
49.数据安全:敏感字段脱敏等数据安全处理要求。
50.调度类型:实时调度,批量调度,跨厂商依赖调度等。
51.调度频率:周期性,一次性。
52.触发机制:定时,前置任务完成等。
53.完成标识:本任务处理结束的标志,如“.complete”文件生成。
54.输入地址:数据输入地址或表名。
55.输出地址:数据输出地址或表名。
56.端点地址:本任务所属服务代理组件的地址信息,以便能确定服务位置。
57.前置依赖:依赖的前续任务id。
58.后置依赖:依赖的后续任务id。
59.服务内容交互约定包括三个方面的约定,即任务调度服务代理约定、数据治理服务代理约定和运维监控服务代理约定。
60.其中,任务调度服务代理约定用于确定任务之间的交互信息(即文中描述的任务调度信息,如第一任务调度信息、第二任务调度信息)。该任务调度服务代理约定的消息接口可以称为任务调度服务代理接口,用于后续任务调度消息,将后续任务启动的相关信息进行封装,传递给任务所在端点,消息字段涉及:所属会话:在一个任务从开始到结束,会涉及多次消息传递和接收,需要保证会话id一致。
61.任务id:本任务的全局唯一id。
62.端点地址:依据任务id,从任务开发服务约定获得。
63.前置依赖任务id:依据任务id,从任务开发服务约定获得(如果为起始任务,不填写)。
64.前置依赖任务所属端点地址:依据前置依赖任务id,从任务开发服务约定获得(如果为起始任务,不填写)。
65.后置依赖任务id:依据任务id,从任务开发服务约定获得(如果为结束任务,不填写)。
66.后置依赖任务所属端点地址:依据后置依赖任务id,从任务开发服务约定获得(如
果为结束任务,不填写)。
67.数据治理服务代理的约定如下:发送端点地址:发送本条消息的调度服务代理端点的地址。
68.任务id:本任务的全局唯一id。
69.程序名:本任务对应的程序名称。
70.输入信息:本任务数据的输入表名称/文件地址。
71.输出信息:本任务数据的输出表名称/文件地址。
72.运维监控服务代理的约定如下:发送端点地址:发送本条消息的调度服务代理端点的地址。
73.任务id:本任务的全局唯一id。
74.处理状态:待执行、执行中、成功或者失败。
75.节点管理交互约定(也可称为联盟调度端点服务代理约定),端点在注册和撤销时以广播的方式向全网各端点进行入网、撤销申请广播,有相关的绑定存在时,服务实例不能被删除,消息字段涉及:端点类型:任务调度服务端点、运维监控服务端点、数据治理服务端点。
76.端点接入类型:全节点、轻节点(如果为轻节点,需要从全网路由表中查询其连接的端点并列出,后续在收到其它端点入网信息后,可以选择是否与其连接)。
77.端点状态:入网、更新、撤销。
78.端点地址:ip地址,用于后续消息互通地址。
79.建设厂商:厂商名称。
80.如图3所示,开发平台(厂家a)通过调度规则设置,设置对应的调度平台(厂家a)的调度规则,该调度平台(厂家a)主要的功能包括任务监控、调度元数据、以及任务管理,通过任务调度服务代理约定将任务信息发送到对应的调度服务代理端点(厂家a),通过数据治理服务约定将血缘关系信息发送到对应的调度服务代理端点(厂家a),通过运维监控服务约定将任务状态信息发送到对应的调度服务代理端点(厂家a)。通过任务开发管理约定,与调度服务代理端点(厂家a)的任务开发服务代理进行任务开发信息的广播交互。该调度服务代理端点(厂家a)是一个可寻址的会话端点,即在调度网络中的调度节点,可实现将调度消息从一个调度服务代理端点发送到另一个调度服务代理端点那里。
81.以下详述关于调度服务代理端点的相关信息。
82.其中,任何实现了调度服务代理端点的软件实体都称之为服务代理(service broker),基于数据调度互通的service broker可以代理4类服务,分别为数据治理服务代理、运维监控服务代理、任务调度服务代理和任务开发服务代理,该调度服务代理端点可按照数据治理服务路由表、运维监控服务路由表、全网调度节点路由表分别进行维护。该服务代理端点在维护最新的路由信息表时,可以依据自身注册时选择的轻节点或全节点进行维护范围设定。
83.可选的,该调度服务代理端点在注册时,以广播的方式向全网各端点进行入网,在撤销时申请广播。
84.可选的,该调度服务代理端点有义务及时对外发布变更信息,否则会被驱逐出去。
85.以下详述该调度服务代理端点中的队列、约定、路径、路由表的功能。
86.队列:保存相关消息,当某个服务的消息到达后,将该消息放到与该服务关联的队列中。其中,当调度平台所执行的任务更新时,会将执行状态更新的消息发送至运维监控服务代理中的队列,即运维监控服务代理中的队列具体用于保存调度平台所执行的任务的最新状态。
87.约定:指定给定会话中的调度消息的消息类型。
88.路径:依据目标接收地址,基于路由表确定传送的目标端点下接收该消息的路由路径。
89.参见图5,图5是本技术实施例提供的一种服务代理端点之间传输消息的路径示意图,如图5所示,当调度服务代理端点(厂家a)和调度服务代理端点(厂家b)之间传输消息时,可根据调度服务代理端点(厂家a)对应的任务调度对象服务代理所确定的路径,依次经过多个调度服务代理端点,直至传输至目标端点,即调度服务代理端点(厂家b)。其中,如图5所示,调度服务代理端点(厂家a)的消息经过了两个调度服务代理端点传输至调度服务代理端点(厂家b),可理解,图5仅为一种示例性的描述,本技术实施例对于路径需要经过哪些调度服务代理端点不作限定。
90.路由表(包括数据治理服务路由表、运维监控服务路由表、全网调度节点路由表):维护最新的路由信息表(依据自身注册时选择的轻节点或全节点进行维护范围设定)。
91.安全:服务代理端点之间相互通信时,需要进行基本的访问认证。
92.发送队列:当调度平台(厂家a)进行任务注册时,可将对应的消息发送至任务调度对象服务代理中的发送队列。
93.接收队列:当调度平台(厂家a)进行任务接收时,可通过任务调度对象服务代理中的接收队列进行任务的获取。
94.参见图6,图6是本技术实施例提供的一种任务调度方法的流程示意图。如图6所示,本技术实施例提供的任务调度方法应用于第一开放式服务代理,可以包括如下步骤:步骤s101,接收来自于第一调度平台所执行的第一任务对应的第一任务调度信息;步骤s102,根据上述第一任务调度信息确定与上述第一任务具有依赖关系第二任务;步骤s103,获取上述第二任务对应的第二任务的基本信息;步骤s104,根据上述第二任务的基本信息、以及全网路由信息,确定由第一开放式服务代理向第二开放式服务代理发送上述第一任务调度信息的最优传输路径,其中,上述全网路由信息用于记录上述第一开放式服务代理和上述第二开放式服务代理所对应的调度网络的全部路由信息;步骤s105,根据上述最优传输路径向上述第二开放式服务代理发送上述第一任务调度信息,以使上述第二开放式服务代理向上述第二开放式服务代理对应的第二调度平台发送上述第一任务调度信息,并使上述第二调度平台基于上述第一任务调度信息执行上述第二任务。
95.可选的,第一调度平台执行第一任务,当执行完第一任务后,向第一开放式服务代理(即上述一种调度服务代理端点)发送第一任务调度信息,其中,该第一任务调度信息,可以包括以下至少一项信息:
上述第一任务对应的会话的会话标识;上述第一任务的任务标识;上述第一开放式服务代理对应的端点地址;与上述第一任务具有依赖关系的前置任务和后置任务;与上述第一任务具有依赖关系的前置任务的归属端点;与上述第一任务具有依赖关系的后置任务的归属端点。
96.可以根据该第一任务调度信息所包含的信息,确定出与该第一任务具有依赖关系的第二任务。
97.可选的,上述根据上述第一任务调度信息确定与上述第一任务具有依赖关系第二任务,包括:若上述第一任务调度信息中存在与上述第一任务具有依赖关系的后置任务,则将上述后置任务确定为与上述第一任务具有依赖关系的上述第二任务。
98.可选的,获取该第二任务对应的第二任务的基本信息(参见上述任务开发服务约定的具体消息接口),根据该第二任务的基本信息(如第二任务的部署位置)、以及全网路由信息,可以确定由第一开放式服务代理向第二开放式服务代理发送第一任务调度信息的最优传输路径,其中,该全网路由信息用于记录第一开放式服务代理和第二开放式服务代理所对应的调度网络的全部路由信息,该全网路由信息可通过第一开放式服务代理所维护的全网调度节点路由表(详见前文描述)获得。
99.然后,根据该最优传输路径向第二开放式服务代理转发该第一任务调度信息,第二开放式服务代理接收到该第一任务调度信息后,可向第二开放式服务代理对应的第二调度平台发送该第一任务调度信息,然后第二调度平台在接收到该第一任务调度信息后,可以开始执行第二任务。同理,对于第一任务和第二任务所对应的应用,若执行完第二任务后,还存在第二任务的后置任务,如第三任务,可参考前文描述,通过第二开放式服务代理、第三开放式服务代理以及第三调度平台的交互,完成第三任务,直至该应用所包含的任务全部执行完成。
100.通过本技术实施例,在第一调度平台执行完第一任务后,可以通过简单的信息传输,即可使第二调度平台开始执行第二任务,通过单一、简单且优雅的方式支撑任务调度产品之间的标准化对接,提高了任务处理效率,有效降低了各平台之间的沟通成本。
101.在一种可选的实施例中,在上述接收来自于第一调度平台所执行的第一任务对应的第一任务调度之前,上述方法还包括:上述第一开放式服务代理向上述调度网络通过全网广播的方式进行注册,以加入上述调度网络。
102.可选的,对于第一开放式服务代理,可以通过向调度网络以全网广播的方式进行注册,以实现第一开放式服务代理向调度网络的入网,在撤销入网时,也可以通过全网广播的方式撤销申请。
103.通过本技术实施例,采用全网广播的方式,可以使调度网络内的节点能够及时的获取到新的入网节点的信息、以及撤销节点的信息,提高了对调度网络节点信息的管理。
104.在一种可选的实施例中,上述第一开放式服务代理向上述调度网络通过全网广播的方式进行注册,包括:
根据上述第一开放式服务代理对应的端点地址、上述第一开放式服务代理对应的上述第一调度平台的标识信息、以及上述第一开放式服务代理对应的端点接入类型中的至少一项,向上述调度网络通过全网广播的方式注册上述第一开放式服务代理,其中,上述第一开放式服务代理对应的端点地址用于表示上述第一开放式服务代理与其它开放式服务代理之间收发消息的地址,上述第一开放式服务代理对应的端点接入类型用于表征上述第一开放式服务代理在上述调度网络中所要连接的网络端点的类型。
105.可选的,第一开放式服务代理在注册时,第一开放式服务代理需要提供对应的端点地址(即调度服务代理端点位置)、第一开放式服务代理对应的端点接入类型(如轻节点或全节点)、第一开放式服务代理对应的第一调度平台的标识信息(如厂家名称)等信息,向调度网络通过全网广播的方式进行注册,实现第一开放式服务代理的入网。
106.在一种可选的实施例中,上述方法还包括:上述第一开放式服务代理和上述第二开放式服务代理均按照标准接口格式接入上述调度网络,其中,上述标准接口格式用于定义上述第一开放式服务代理和上述第二开放式服务代理各自的相关信息。
107.可选的,第一开放式服务代理和第二开放式服务代理在接入调度网络时,均按照数据调度互通协议接口格式实现对数据治理服务代理约定、运维监控服务代理约定、以及任务调度服务代理约定的标准化信息的交互支撑。
108.在一种可选的实施例中,上述方法还包括:若上述第一开放式服务代理接入了上述调度网络中的全网运维监控端点,则将上述第一任务的任务状态同步广播至上述全网运维监控端点,其中,上述全网运维监控端点用于记录通过上述调度网络进行任务调度的各个任务的任务状态,上述第一任务的任务状态包括待执行状态、执行状态、成功状态或者失败状态。
109.可选的,对于第一开放式服务代理,若第一开放式服务代理在入网注册时接入了调度网络的全网运维监控端点,那么可以通过该第一开放式服务代理,将第一任务的任务状态信息同步发送到全网运维监控端点,并通过该全网运维监控端点所维护的运维监控服务路由表记录该第一任务的任务状态,对于该调度网络内的其他端点,能够通过该运维监控服务路由表,及时的获取到该第一任务的任务状态信息,其中,该第一任务的任务状态包括待执行状态、执行状态、成功状态或者失败状态。
110.通过本技术实施例,能够通过全网运维监控,及时的监控每个任务的任务状态,提高了任务的调度效率。
111.以下结合一具体示例对本技术实施例中的任务调度方法进行详细说明。
112.参见图7,图7是本技术实施例提供的一种基于数据调度互通协议的任务执行流程图,如图7所示,以调度平台(厂家a)执行第一任务,调度平台(厂家b)执行第二任务为例进行说明。参见图8,图8是本技术实施例提供的一种基于数据调度互通协议的任务约定配置图。以下结合图7和图8对本技术实施例中的任务调度方法进行说明,具体步骤如下:s201,任务依赖信息建立及调度规则设置。
113.开发平台(厂家a)和开发平台(厂家b)可以基于调度互通协议,构建任务开发约定对象,并完成任务基本信息、前置依赖及后置依赖信息的补充。
114.开发平台(厂家a)通过定义任务开发服务约定进行任务开发服务注册,即图8所示
的调度规则设置,其中,该开发平台(厂家a)所定义的任务开发服务约定的内容如下:任务id:task-1001(对应于前文描述的第一任务)。
115.任务类型:数据采集。
116.数据安全:敏感字段脱敏。
117.调度类型:批量调度。
118.调度频率:周期性。
119.触发机制:定时(每天9点)。
120.完成标识:“.complete”。
121.数据输入地址:10.1.1.1/1000/*。
122.数据输出地址:10.1.1.1/1001/*。
123.端点地址:10.10.1.1。
124.前置依赖:-(表示没有前置依赖)。
125.后置依赖:task-1002(对应于前文描述的第二任务)。
126.其中,该开发平台(厂家a)所定义的任务开发服务约定的内容对应于前文描述的第一任务对应的第一任务的基本信息。
127.开发平台(厂家b)通过定义任务开发服务约定进行任务开发服务注册,即图8所示的调度规则设置,其中,该开发平台(厂家b)所定义的任务开发服务约定的内容如下:任务id:task-1002。
128.任务类型:数据合并。
129.数据安全:敏感字段脱敏。
130.调度类型:前置依赖调度。
131.调度频率:—。
132.触发机制:前置任务触发。
133.完成标识:“.complete”。
134.数据输入地址:10.1.1.1/1001/*。
135.数据输出地址:10.1.1.2/1002/*。
136.端点地址:10.10.1.2。
137.前置依赖:task-1001。
138.后置依赖:task-1003。
139.其中,该开发平台(厂家b)所定义的任务开发服务约定的内容对应于前文描述的第二任务对应的第二任务的基本信息。
140.需要说明的是,任务上线部署到调度服务代理端点时,发送如任务开发服务约定所定义的消息格式的广播。以task-1001任务为例,当广播task-1001任务对应的任务开发服务约定后,存在如下两种情况:情况1:task-1002任务在调度网络中存在,在task-1002对应的调度平台接收到广播后,将task-1002的任务开发服务约定信息中的前置任务,更新为task-1001;并且告知task-1001对应的调度平台,让task-1001对应的调度平台将task-1001的任务开发服务约定信息中的后置任务更新为task-1002。
141.情况2:task-1002任务在调度网络中不存在,那么task-1001对应的开发平台中的
后置任务暂为空。在task-1002上线进行信息广播、且task-1001对应的开发平台接收到该广播后,需要将task-1001的任务开发服务约定信息中的后置任务更新为task-1002;并且告知task-1002对应的调度平台,让task-1002对应的调度平台将task-1002的任务开发服务约定信息中的前置任务更新为task-1001。
142.由于需要前置依赖任务和后置依赖任务在更新后,才能保证依赖关系的正确建立。因此在任务开发服务约定中,每一个任务开发服务约定信息可能会涉及以下两种状态已发布状态、可运行状态。其中,已发布状态表示任务开发服务约定信息已经发布,但是任务的依赖关系未完成建立,此时,属于依赖关系中的前置任务可根据实际需要执行,属于依赖关系中的后置任务需要在依赖关系建立后、且前置任务执行完才能开始执行。可运行状态表示任务开发服务约定信息已经发布,已完成任务的依赖关系的建立,可以作为运行的任务,也就是说,属于依赖关系的前置任务可以开始执行,属于依赖关系的后置任务在前置任务执行完后可以开始执行。
143.s202,数据采集任务的执行与数据采集任务的返回。
144.通过上述步骤,该开发平台(厂家a)对应的调度平台(厂家a)(即上述第一调度平台)收到了该开发平台(厂家a)所指示的任务,该任务id为task-1001,并按照该开发平台(厂家a)的消息接口所指示的任务类型,通过调度平台(厂家a)的任务管理模块接进行数据采集任务的执行,并按照该开发平台(厂家a)的消息接口所指示的调度类型和调度频率,进行数据采集任务的返回。
145.s203,后续依赖任务信息发送。
146.当上述调度平台(厂家a)执行完数据采集任务,则进行任务调度服务代理约定的相关信息的定义,即执行图8所示的任务注册,所定义的该任务调度服务代理约定的内容(即第一任务调度信息)如下:所属会话:sess-202210121745。
147.任务id:task-1001。
148.端点地址:10.1.1.1。
149.前置依赖任务id:—。
150.前置依赖任务所属端点地址:—。
151.后置依赖任务id:task-1002。
152.后置依赖任务所属端点地址:10.10.1.2。
153.然后,将该任务调度服务代理约定所定义的内容(对应于前文描述的第一任务调度信息)进行封装,进行后续依赖任务信息的发送,即将该任务调度服务代理约定所定义的内容发送至调度服务代理端点(厂家a)(对应于上述第一开放式服务代理)的接收队列。
154.s204,依据后置依赖任务的约定信息获得后置依赖任务的端点地址,并结合全网路由信息确定最佳的信息传输路径(即最优传输路径)。
155.该调度服务代理端点(厂家a)接收到该任务调度对象代理接口所定义的内容后,可以依据该任务调度对象代理接口所定义的内容,确定出调度平台(厂家a)所执行的任务的后置依赖任务,该后置依赖任务的任务id为task-1002,然后获取该task-1002对应的任务开发服务约定的内容(即文中描述的第二任务的基本信息),确定task-1002对应的任务开发服务约定的内容中的端点地址,并结合全网路由信息确定传输调度平台(厂家a)所定
义的任务调度服务代理约定的内容(即第一任务调度信息)、所对应的最佳信息传输路径(即最优传输路径)。
156.s205,依据最优传输路径,进行路由信息的转发。
157.依据该最优传输路径,进行调度平台(厂家a)所定义的任务调度服务代理约定的内容(即第一任务调度信息)的转发,此时,调度服务代理端点(厂家b)(对应于上述第二开放式服务代理)的接收队列可以接收到该调度平台(厂家a)所定义的任务调度服务代理约定的内容。
158.s206,依赖任务信息启动通知。
159.调度服务代理端点(厂家b)将接收到的调度平台(厂家a)所定义的任务调度服务代理约定的内容向调度平台(厂家b)进行发送,即进行依赖任务信息启动通知,使得调度平台(厂家b)(即上述第二调度平台)可以启动任务task-1002(即第二任务)的执行。
160.s207,数据合并任务的执行与数据合并任务的返回。
161.调度平台(厂家b)(即上述第二调度平台)开始执行任务task-1002(即第二任务),即按照开发平台(厂家b)的消息接口所指示的任务类型,通过调度平台(厂家b)的任务管理模块接进行数据合并任务的执行,并按照该开发平台(厂家b)的消息接口所指示的调度类型和调度频率,进行数据合并任务的返回。
162.当调度平台(厂家b)执行完该任务task-1002后,则进行任务调度服务代理约定的相关信息的定义,即执行图8所示的任务注册,所定义的该任务调度服务代理约定的内容(即第二任务调度信息)如下:所属会话:sess-202210121745。
163.任务id:task-1002。
164.端点地址:10.1.1.2。
165.前置依赖任务id:task-1001(去任务开发服务约定查询获得)。
166.前置依赖任务所属端点地址:10.1.1.1(去任务开发服务约定查询获得)。
167.后置依赖任务id:task-1003(去任务开发服务约定查询获得)。
168.后置依赖任务所属端点地址:10.1.1.3(去任务开发服务约定查询获得)。
169.此时,数据采集任务和数据合并的任务执行完成。
170.s208,任务执行状态更新。
171.需要说明的是,可能会存在task-1002会有多个前置任务的依赖情况,因此,在task-1002启动前,需要检查一下task-1002的全部的前置依赖任务是否将任务调度服务代理约定的相关信息发送过来了。
172.由于调度平台(厂家b)接入了全网运维管理,调度平台(厂家b)可以将所执行的任务task-1002的任务执行状态更新至全网运维管理。
173.可理解,上述仅为一种示例性的描述,本技术实施例在此不作任何限定。
174.为了更清楚的描述本技术实施例的优点,以下结合一示例进行详细描述,参见图9,图9是本技术实施例提供的一种基于调度互通协议实现全网拉通的原理图,如图9所示:基于厂家a、厂家b和厂家c分别执行不同的任务,其中,厂家a负责数据采集任务,厂家b负责模型开发任务,厂家c负责指标分析任务。厂家a、厂家b和厂家c均按照本技术实施例的任务调度方法,对任务进行标准接口格式的定义,详见前文描述,在此不再赘述,即
基于调度互通协议,使得厂家a、厂家b和厂家c之间血缘互通(即具有统一的任务约定管理),实现数据生产环节的全网拉通。
175.传统方式中,数据生产各环节的跨厂商数据调度的串通,基本按照以项目形式进行调度接口对接,人工协调对接工作费时费力。
176.通过本技术实施例,基于开放的数据调度互通协议实现了调度的便捷集成、快速感知与协同,提高了任务处理的性能,并能有效降低各厂商、各团队之间的沟通对接成本,并简化了管理。
177.基于开放的数据调度互通协议,跨厂商的调度软件以服务化的形式进行相互对接,实现调度程序的松耦合,提高了工作负荷灵活性。
178.基于数据调度互通协议,轻松构建血缘互通关系网络,为全网数据治理工作提供高效的服务,提升数据质量稽核、血缘汇聚等数据治理工作的效能。
179.基于开放的数据调度互通协议,便捷实现任务依赖关系的互通,可以支撑跨集群任务跟踪与诊断,便于对各类故障问题进行快速感知和定位。
180.参见图10,图10是本技术实施例提供的任务调度装置的结构示意图。
181.本技术实施例提供的任务调度装置1包括:接收模块11,用于接收来自于第一调度平台所执行的第一任务对应的第一任务调度信息;第一确定模块12,用于根据上述第一任务调度信息确定与上述第一任务具有依赖关系的第二任务;获取模块13,用于获取上述第二任务对应的第二任务的基本信息;第二确定模块14,用于根据上述第二任务的基本信息、以及全网路由信息,确定由第一开放式服务代理向第二开放式服务代理发送上述第一任务调度信息的最优传输路径,其中,上述全网路由信息用于记录上述第一开放式服务代理和上述第二开放式服务代理所对应的调度网络的全部路由信息;发送模块15,用于根据上述最优传输路径向上述第二开放式服务代理发送上述第一任务调度信息,以使上述第二开放式服务代理向上述第二开放式服务代理对应的第二调度平台发送上述第一任务调度信息,并使上述第二调度平台基于上述第一任务调度信息执行上述第二任务。
182.在一种可行的实施中,上述装置还包括:第一处理模块,用于上述第一开放式服务代理和上述第二开放式服务代理均按照标准接口格式接入上述调度网络,其中,上述标准接口格式用于定义上述第一开放式服务代理和上述第二开放式服务代理各自的相关信息。
183.在一种可行的实施中,上述装置还包括:第二处理模块,用于若上述第一开放式服务代理接入了上述调度网络中的全网运维监控端点,则将上述第一任务的任务状态同步广播至上述全网运维监控端点,其中,上述全网运维监控端点用于记录通过上述调度网络进行任务调度的各个任务的任务状态,上述第一任务的任务状态包括待执行状态、执行状态、成功状态或者失败状态。
184.在一种可行的实施中,上述装置还包括:注册模块,用于上述第一开放式服务代理向上述调度网络通过全网广播的方式进
circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
193.具体实现中,上述电子设备1000可通过其内置的各个功能模块执行如上述图6中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
194.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图6中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
195.上述计算机可读存储介质可以是前述任一实施例提供的任务调度装置的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
196.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图6中各个步骤所提供的方法。
197.本技术的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或电子设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或电子设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
198.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
199.以上所揭露的仅为本技术较佳实施例而已,不能以此来限定本技术之权利范围,
因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1