一种任务调度方法、装置及系统与流程

文档序号:25543271发布日期:2021-06-18 20:40阅读:70来源:国知局
一种任务调度方法、装置及系统与流程

本发明涉及计算机技术领域,更具体的说,是涉及一种任务调度方法、装置及系统。



背景技术:

在分布式化计算机技术领域,任务是计算机完成的基本工作单元,它是由控制程序处理的一个或多个指令序列,依据指令序列的不同执行方式,任务分为多种不同的类型,随着分布式、云计算等技术的发展,不同类型的任务被不同的计算框架所割裂,每种类型的任务单独对应一种调度方式,每种类型任务的调度方式之间具有隔离性,即用户在对不同类型的任务进行调度的过程中,需要在不同类型任务的调度方式之间切换,严重影响了任务调度的效率。

基于此,如何提供一种统一的任务调度方式,提高任务调度的效率,成为目前需要解决的技术问题。



技术实现要素:

有鉴于此,本发明提供了一种任务调度方法、装置及系统,以提供一种统一的任务调度方式,提高任务调度的效率。

为实现上述目的,本发明提供如下技术方案:

一种任务调度方法,所述方法包括:

选择执行目标业务的目标流水线实例;

对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;

按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。

优选的,在所述目标业务包含多个的情况下,所述选择执行目标业务的目标流水线实例包括:

从预先设置的业务与流水线实例的对应关系中,选择每个目标业务各自对应的目标流水线实例;

按照各个目标业务的优先级顺序,对各个目标流水线实例进行优先级的排列,得到目标流水线实例队列,所述目标流水线实例队列中包含多个目标流水线实例。

优选的,所述对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源包括:

按照目标流水线实例队列的优先级顺序以及目标流水线实例队列中每个目标流水线实例的优先级顺序,依次对每个目标流水线实例队列中每个目标流水线实例进行解析,从每个目标流水线实例中获取各自包含的目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源。

优选的,在从一个目标流水线实例中获取多个目标任务实例的情况下,所述按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行包括:

按照目标任务实例各自对应的运行方式、不同目标任务实例之间的依赖关系以及不同目标任务实例的优先级顺序中的至少一种,将每个目标任务实例分配至任务执行接口;

在任务执行接口,将目标任务实例分配至对应的目标运行资源上运行。

优选的,在按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行之前,还包括:

对所述目标流水线实例进行解析,获取所述目标流水线实例的调度方式。

优选的,所述按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行包括:

按照所述目标流水线实例对应的调度方式以及目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。

一种任务调度装置,所述装置包括:

目标流水线实例选择单元,用于选择执行目标业务的目标流水线实例;

解析单元,用于对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;

任务调度单元,用于按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。

优选的,在所述目标业务包含多个的情况下,所述目标流水线实例选择单元包括:

目标流水线实例选择子单元,用于从预先设置的业务与流水线实例的对应关系中,选择每个目标业务各自对应的目标流水线实例;

排列单元,用于按照各个目标业务的优先级顺序,对各个目标流水线实例进行优先级的排列,得到目标流水线实例队列,所述目标流水线实例队列中包含多个目标流水线实例。

优选的,所述解析单元包括:

解析子单元,用于按照目标流水线实例队列的优先级顺序以及目标流水线实例队列中每个目标流水线实例的优先级顺序,依次对每个目标流水线实例队列中每个目标流水线实例进行解析,从每个目标流水线实例中获取各自包含的目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源。

一种任务调度系统,所述系统包括:

处理器和存储器;

所述处理器,用于调用并执行所述存储器中存储的程序;

所述存储器用于存储所述程序,所述程序至少用于:

执行如上所述的任务调度方法。

经由上述的技术方案可知,与现有技术相比,本发明提供了一种任务调度方法、装置及系统,通过选择执行目标业务的目标流水线实例;对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。本发明实施例能够依据目标业务,选择执行目标业务的目标流水线实例,从而从目标流水线实例中获取构成目标流水线实例的目标任务实例,并按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行,实现了对不同任务实例的统一调度,提高任务调度的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种任务调度方法的流程图;

图2为本发明实施例提供的另一种任务调度方法的流程图;

图3为本发明实施例提供的又一种任务调度方法的流程图;

图4为本发明实施例提供的任务调度装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在分布式化计算机技术领域,任务是计算机完成的基本工作单元,它是由控制程序处理的一个或多个指令序列,任务是站在一套分布式操作系统角度对各类计算形态的应用的抽象,在任务领域承载的计算应用类型具有多样性。从交互方式领域划分,任务分为如下类型:

在线计算任务类型:对时延要求略低、吞吐量要求高的web人机交互的在线服务任务,对时延要求高、兼顾对吞吐量的要求的物联网领域物与物交互的在线控制类任务;

批量计算任务类型:分布在对时延要求不是很高,对吞吐量要求高的领域,如各类分析型、批量统计分析报表等任务;

dag计算任务类型:面向应用任务计算存在流程依赖的计算场景,这些任务对时延要求低、对吞吐量要求极高,如电信行业的月结计算类的任务,ai领域深度学习等类型任务;

流的计算模型任务类型:对时延要求高,同时兼顾对吞吐量的要求。

同时这些不同的任务类型调度方式也呈现不同,有如下分类:

单个批量计算任务:时间驱动调度方式,如各类定时任务;数据导入驱动调度方式,如各类临时、周期上传数据触发计算类任务;

dag计算任务:既存在任务之间状态依赖的调度,也存在dag环中节点任务呈现时间、数据驱动等调度类型;

面向任务数据流之间依赖调度的流式计算任务,任务调度运行后数据在各个任务之间实时流动计算处理。

随着分布式、云计算等技术的发展,目前对上述不同形态的任务以及任务计算的调度类型推出各式各样的计算框架,这些计算框架在对某些业务类型领域提供相应的任务计算模型和调度能力,如mapreduce、spark、flink及各类自有计算框架等。也就是说,目前不同类型的任务被不同的计算框架所割裂,每种类型的任务单独对应一种调度方式,每种类型任务的调度方式之间具有隔离性,即用户在对不同类型的任务进行调度的过程中,需要在不同类型任务的调度方式之间切换,严重影响了任务调度的效率。

为了解决上述技术问题,本发明实施例公开了一种任务调度方法,通过选择执行目标业务的目标流水线实例;对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。本发明实施例能够依据目标业务,选择执行目标业务的目标流水线实例,从而从目标流水线实例中获取构成目标流水线实例的目标任务实例,并按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行,实现了对不同任务实例的统一调度,提高任务调度的效率。

下面对本发明实施例提供的任务调度方法进行介绍,图1为本发明实施例提供的任务调度方法的流程图,参照图1,所述方法可以包括:

步骤s100、选择执行目标业务的目标流水线实例;

需要说明的是,目标流水线实例用于执行目标业务,不同的目标业务可以对应不同的目标流水线实例,也可以对应相同的目标流水线实例;一个目标业务可以对应一个目标流水线实例,也可以对应多个目标流水线实例,本发明实施例不做具体限定。

因此,本发明实施例中选取的执行目标业务的目标流水线实例可以为一个也可以为多个。

目标流水线实例是由目标任务实例构成的,至少一个目标任务组成一条目标流水线,目标流水线是目标任务的流水线。

步骤s110、对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;

需要说明的是,本发明实施例中的目标流水线实例中不仅包含了目标任务实例,还包含了目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源,还可以包含目标流水线实例的属性信息等,本发明实施例不做具体限定。

可选的,对于同一个任务实例在不同的流水线实例中可以具有不同的调度方式以及不同的目标运行资源,不同的任务实例也可以具有相同的度方式以及目标运行资源,本发明实施例不做具体限定。

本发明实施例中将目标流水线实例的属性信息存储在目标流水线实例模型中,目标流水线实例的属性信息中存储了目标流水线的唯一标识(如编号或名称)、目标流水线中包含的目标任务实例的相关信息(如在一个目标流水线实例中,流水线和任务的对应关系,一条流水线包括的至少一个目标任务实例)、目标流水线实例的调度方式(如目标流水线实例的开始执行时间、结束执行时间、周期性触发的目标流水线实例的运行周期、入口流水线触发方式等)、目标流水线实例的性能描述、目标流水线实例对应的操作员、目标流水线实例的创建时间以及修改时间等。

目标任务实例中包含的是与目标任务相关的信息:目标任务的唯一性标识(如编号或名称)、目标任务的类型(如交易处理任务类型、密集型批量计算类型、ai任务类型等)、目标任务分组信息、目标任务归属租户编码、目标任务版本、目标任务处理类型、目标任务的开始执行时间、目标任务的结束执行时间及实现类相关信息定义。

目标任务实例对应的调度方式包括:目标任务实例调度方式属性标识(如编号或名称)、目标任务的唯一性标识(如编号或名称)、容错方式、目标任务实例调度的时间、目标任务实例调度方式对应的操作员、目标任务实例调度方式的创建时间以及修改时间、调度类型(如:时间周期调度、状态触发调度、人工触发调度等)、相应的调度周期、任务运行方式(常驻、周期、实时启动等)、任务分片设定(拆分分布式节点单元数)、不同目标任务实例之间的依赖关系以及不同目标任务实例的优先级顺序等。

不同目标任务实例之间的依赖关系例如为:前后任务的状态依赖关系(a任务运行完成,根据a运行成功的状态,触发b任务运行),前后任务之间数据传递依赖(即a任务处理单笔数据后,就流向b任务处理这种流水线的情况。),前后任务事件触发依赖(比如前一个任务触发某个动作事件,如发起一次对账、一次报表计算等,后续任务接到事件即处理),还存在比如界面导入一批文件,触发了后续计算任务这种模式依赖,即任务处理依赖外部人工操作触发关系。

不同目标任务实例的优先级顺序为不同目标任务的执行先后优先级顺序。目标任务实例的优先级顺序,决定哪个目标任务会先分发调度;标有任务紧急定义的任务实例,可以在任务分发时优先进行插队机制处理,优先分发调度;标有任务隔离优先定义的任务实例,支持任务底层分发调度至隔离的目标运行资源上,确保不受其他任务处理的影响。

目标任务实例对应的目标运行资源中包含了目标运行资源的相关属性信息,包括:目标运行资源的唯一性标识(如编号或名称)、目标运行资源的资源类型(例如:cpu、gpu、存储、网络等)、目标运行资源单位、目标运行资源限额等信息。

目标流水线实例与目标任务实例的对应关系包括:目标流水线实例与目标任务实例的对应关系唯一性标识,目标流水线实例唯一性标识,目标任务实例唯一性标识、任务前后依赖关系、前置任务标识等。

目标任务实例与目标运行资源的对应关系包括:目标任务实例与目标运行资源的对应关系唯一性标识、目标流水线实例唯一性标识,目标任务实例唯一性标识、目标运行资源唯一性标识等。

步骤s120、按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。

在从一个目标流水线实例中获取多个目标任务实例的情况下,所述按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行包括:

按照目标任务实例各自对应的运行方式、不同目标任务实例之间的依赖关系以及不同目标任务实例的优先级顺序中的至少一种,将每个目标任务实例分配至任务执行接口;在任务执行接口,将目标任务实例分配至对应的目标运行资源上运行。

资源调度器从解析得到的目标任务实例中,按照目标任务实例对应的调度方式,将目标任务实例下发至具体资源域(如虚拟机集群、kubernetes、mesos容器集群等)进行调度。

任务调度引擎统一与资源层适配容器和虚拟机的调度接口对接,将单个进入运行序列的目标任务实例分发调度运行。无论什么类型的资源域,任务调度引擎都负责和对于提供的资源调度api适配,在任务调度层来实现资源域与特定开源的技术栈无关的优先级等管控。

将所述目标任务实例调度至对应的目标运行资源上运行具体可以包括容器调度或虚拟机调度,本发明实施例不做具体限定。

本发明实施例通过选择执行目标业务的目标流水线实例;对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。本发明实施例能够依据目标业务,选择执行目标业务的目标流水线实例,从而从目标流水线实例中获取构成目标流水线实例的目标任务实例,并按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行,实现了对不同任务实例的统一调度,提高任务调度的效率。并将目标流水线实例的调度与述目标任务实例的调度解耦,实现调度方式的灵活性。

下面对本发明实施例提供的另一种任务调度方法进行介绍,本发明实施例中存在多个目标业务,图2为本发明实施例提供的任务调度方法的流程图,参照图2,所述方法可以包括:

步骤s200、从预先设置的业务与流水线实例的对应关系中,选择每个目标业务各自对应的目标流水线实例;

每个目标业务可以对应一个目标流水线实例,还可以对应多个目标流水线实例,本发明实施例不做具体限定。

步骤s210、按照各个目标业务的优先级顺序,对各个目标流水线实例进行优先级的排列,得到目标流水线实例队列,所述目标流水线实例队列中包含多个目标流水线实例;

不同的目标业务具有不同的优先级顺序,具体可以按照目标业务的执行顺序确定其优先级顺序,还可以按照目标业务的特性确定其优先级顺序,本发明实施例不做具体限定。

如果一个目标业务对应多个目标流水线实例,则可以按照目标流水线实例的优先级顺序,对一个目标业务对应多个目标流水线实例进行排序。

步骤s220、按照目标流水线实例队列的优先级顺序以及目标流水线实例队列中每个目标流水线实例的优先级顺序,依次对每个目标流水线实例队列中每个目标流水线实例进行解析,从每个目标流水线实例中获取各自包含的目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;

本发明实施例的解析顺序参照目标流水线实例队列的优先级顺序以及目标流水线实例队列中每个目标流水线实例的优先级顺序,先对优先级高的目标流水线实例队列进行解析,再对目标流水线实例队列中优先级高的目标流水线实例进行解析。

步骤s230、按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。

本发明实施例从预先设置的业务与流水线实例的对应关系中,选择每个目标业务各自对应的目标流水线实例,按照各个目标业务的优先级顺序,对各个目标流水线实例进行优先级的排列,得到目标流水线实例队列,所述目标流水线实例队列中包含多个目标流水线实例;按照目标流水线实例队列的优先级顺序以及目标流水线实例队列中每个目标流水线实例的优先级顺序,依次对每个目标流水线实例队列中每个目标流水线实例进行解析,从每个目标流水线实例中获取各自包含的目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源,按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。从而在存在多个目标业务的情况下,能够对多个目标业务对应的不同任务实例进行统一的调度,提高任务调度的效率。

下面对本发明实施例提供的另一种任务调度方法进行介绍,图3为本发明实施例提供的任务调度方法的流程图,参照图3,所述方法可以包括:

步骤s300、选择执行目标业务的目标流水线实例;

步骤s310、对所述目标流水线实例进行解析,获取所述目标流水线实例的调度方式;

由于目标流水线实例也具有不同的调度方式,因此,本申请通过对目标流水线实例进行解析,获取所述目标流水线实例的调度方式。

步骤s320、对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;

需要说明的是,本发明实施例中的步骤s310与步骤s320不分执行先后顺序,可以先执行步骤s310,再执行步骤s320;也可以先执行步骤s320,再执行步骤s310,还可以步骤s310与步骤s320同时执行,本发明实施例不做具体限定。

步骤s330、按照所述目标流水线实例对应的调度方式以及目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。

本申请在进行任务调度的过程中,参考了目标流水线实例对应的调度方式以及目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。能够丰富任务的调度方式,实现调度方式的横向扩展,增强任务调度方式的灵活性,扩展性,提高任务调度的效率。

下面对本发明实施例提供的任务调度装置进行介绍,下文描述的任务调度装置可与上文任务调度方法相互对应参照。

图4为本发明实施例提供的任务调度装置的结构框图,参照图4,该任务调度装置可以包括:

目标流水线实例选择单元400,用于选择执行目标业务的目标流水线实例;

解析单元410,用于对所述目标流水线实例进行解析,从所述目标流水线实例中获取目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源;

任务调度单元420,用于按照所述目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。

在所述目标业务包含多个的情况下,所述目标流水线实例选择单元包括:

目标流水线实例选择子单元,用于从预先设置的业务与流水线实例的对应关系中,选择每个目标业务各自对应的目标流水线实例;

排列单元,用于按照各个目标业务的优先级顺序,对各个目标流水线实例进行优先级的排列,得到目标流水线实例队列,所述目标流水线实例队列中包含多个目标流水线实例。

所述解析单元包括:

解析子单元,用于按照目标流水线实例队列的优先级顺序以及目标流水线实例队列中每个目标流水线实例的优先级顺序,依次对每个目标流水线实例队列中每个目标流水线实例进行解析,从每个目标流水线实例中获取各自包含的目标任务实例、目标任务实例对应的调度方式以及目标任务实例对应的目标运行资源。

在从一个目标流水线实例中获取多个目标任务实例的情况下,所述任务调度单元包括:

第一分配单元,用于按照目标任务实例各自对应的运行方式、不同目标任务实例之间的依赖关系以及不同目标任务实例的优先级顺序中的至少一种,将每个目标任务实例分配至任务执行接口;

第二分配单元,用于在任务执行接口,将目标任务实例分配至对应的目标运行资源上运行。

所述任务调度装置还包括:

目标流水线实例调度方式获取单元,用于对所述目标流水线实例进行解析,获取所述目标流水线实例的调度方式。

所述任务调度单元包括:

任务调度子单元,用于按照所述目标流水线实例对应的调度方式以及目标任务实例对应的调度方式,将所述目标任务实例调度至对应的目标运行资源上运行。

本发明实施例还公开了一种任务调度系统,所述系统包括:

处理器和存储器;

所述处理器,用于调用并执行所述存储器中存储的程序;

所述存储器用于存储所述程序,所述程序至少用于:

执行如上所述的任务调度方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1