CN111736965A - 任务调度方法、装置、调度服务器和机器可读存储介质 - Google Patents
任务调度方法、装置、调度服务器和机器可读存储介质 Download PDFInfo
- Publication number
- CN111736965A CN111736965A CN201911264864.3A CN201911264864A CN111736965A CN 111736965 A CN111736965 A CN 111736965A CN 201911264864 A CN201911264864 A CN 201911264864A CN 111736965 A CN111736965 A CN 111736965A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- processed
- nodes
- target node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 40
- 238000004891 communication Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000009434 installation Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种任务调度方法、装置、调度服务器和机器可读存储介质,调度服务器在接收到待处理任务后,向系统中的各个节点发送携带待处理任务的任务信息的查询命令,以使各个节点在接收到查询命令后,检测自身是否支持执行该待处理任务。调度服务器在接收到确定自身支持执行待处理任务的节点反馈的响应信息时,从反馈响应信息的节点中确定出目标节点,并将待处理任务下发至目标节点。如此,可通过查询命令以使各个节点进行信息上报的方式,及时发现系统内可用的节点,并从中确定出目标节点以执行任务。避免了预先建立任务与节点之间的对应关系,并按该对应关系进行任务调度导致的可能存在节点无法被及时、高效利用的问题。
Description
技术领域
本申请涉及分布式技术领域,具体而言,涉及一种任务调度方法、装置、调度服务器和机器可读存储介质。
背景技术
目前常见的分布式架构中,调度中心在进行任务调度时,采用的方式一般是预先根据任务所需的运行环境以及分布式架构中各个处理节点的实际情况,建立不同任务与不同处理节点之间的关系。在进行任务处理时,再根据预先建立的对应关系,将任务分配到对应的处理节点进行处理。这种任务调度方式中,若网络中有未预先加入配置的其他可用的处理节点时,也必须预先通过对应关系建立之后,才可通过调度中心进行任务配置。导致这些处理节点无法及时、高效地被调度以执行任务。
发明内容
本申请的目的包括,例如,提供了一种任务调度方法、装置、调度服务器和机器可读存储介质,其能够及时发现系统内可用节点、实现节点的高效利用。
本申请的实施例可以这样实现:
第一方面,实施例提供一种任务调度方法,应用于任务调度系统中的调度服务器,所述任务调度系统还包括与所述调度服务器通信的多个节点,所述方法包括:
在获取待处理任务后,向各所述节点发送携带有所述待处理任务的任务信息的查询命令,以使各所述节点检测自身是否支持执行所述待处理任务;
接收确定自身支持执行所述待处理任务的节点反馈的响应信息,并从反馈所述响应信息的节点中确定出目标节点;
将所述待处理任务下发至所述目标节点。
在可选的实施方式中,在反馈所述响应信息的节点为多个时,所述从反馈所述响应信息的节点中确定出目标节点的步骤,包括:
根据所述响应信息,获取反馈所述响应信息中各所述节点的实际运行参数;
根据所述待处理任务所需的运行参数以及各所述节点的实际运行参数,从多个节点中确定出所述目标节点。
在可选的实施方式中,所述根据所述待处理任务所需的运行参数以及各所述节点的实际运行参数,从多个节点中确定出所述目标节点的步骤,包括:
根据所述待处理任务所需的运行参数以及各所述节点的实际运行参数,从多个节点中确定出满足所述待处理任务的参数要求的节点;
检测确定出的节点中是否具有处于空闲状态的节点,若具有,则将处于空闲状态的节点作为所述目标节点;
若不具有,则按预设规则从确定出的节点中获得所述目标节点。
在可选的实施方式中,在确定出的节点为多个时,所述按预设规则从确定出的节点中获得所述目标节点的步骤,包括:
获得所述待处理任务的优先级,以及确定出的各个节点当前所执行的任务的优先级;
获得确定出的多个节点中当前所执行的任务的优先级最低的节点,在该节点所执行的任务的优先级低于所述待处理任务的优先级时,将该节点作为所述目标节点。
在可选的实施方式中,在所述目标节点当前有执行任务时,所述将所述待处理任务下发至所述目标节点的步骤之前,所述方法还包括:
向所述目标节点发送中断命令,以使所述目标节点中断当前的执行任务;
获得所述执行任务的执行信息并保存。
在可选的实施方式中,所述将所述待处理任务下发至所述目标节点的步骤之后,所述方法还包括:
在接收到所述目标节点发送的所述待处理任务执行完毕的反馈信息时,将保存的执行信息下发至所述目标节点,以使所述目标节点根据所述执行信息继续执行所述执行任务。
在可选的实施方式中,所述执行任务包括多个子任务,所述执行信息包含所述目标节点还未执行完成的子任务的编号信息,所述将保存的执行信息下发至所述目标节点,以使所述目标节点根据所述执行信息继续执行所述执行任务的步骤,包括:
将所述目标节点还未执行完成的子任务的编号信息下发至所述目标节点,以使所述目标节点根据接收到的编号信息继续执行所述执行任务中还未执行完成的子任务。
第二方面,本申请实施例提供一种任务调度装置,应用于任务调度系统中的调度服务器,所述任务调度系统还包括与所述调度服务器通信的多个节点,所述装置包括:
发送模块,用于在获取待处理任务后,向各所述节点发送携带有所述待处理任务的任务信息的查询命令,以使各所述节点检测自身是否支持执行所述待处理任务;
确定模块,用于接收确定自身支持执行所述待处理任务的节点反馈的响应信息,并从反馈所述响应信息的节点中确定出目标节点;
下发模块,用于将所述待处理任务下发至所述目标节点。
第三方面,本申请实施例提供一种调度服务器,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当调度服务器运行时,处理器执行所述机器可执行指令,以执行上述任意一项所述的任务调度方法。
第四方面,本申请实施例提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令被执行时实现上述任意一项所述的任务调度方法。
本申请实施例的有益效果包括,例如:
本申请实施例提供的任务调度方法、装置、调度服务器和机器可读存储介质,调度服务器在接收到待处理任务后,向系统中的各个节点发送携带待处理任务的任务信息的查询命令,以使各个节点在接收到查询命令后,检测自身是否支持执行该待处理任务,并在确定自身支持执行该待处理任务时发送响应信息至调度服务器。调度服务器在接收到确定自身支持执行待处理任务的节点反馈的响应信息时,从反馈响应信息的节点中确定出目标节点,并将待处理任务下发至目标节点。如此,可通过查询命令以使各个节点进行信息上报的方式,及时发现系统内可用的节点,并从中确定出目标节点以执行任务。避免了预先建立任务与节点之间的对应关系,并按该对应关系进行任务调度导致的可能存在节点无法被及时、高效利用的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的任务调度系统的结构框图;
图2为本申请实施例提供的调度服务器的硬件结构示意图;
图3为本申请实施例提供的任务调度方法的流程图;
图4为图3中步骤S330的子步骤的流程图;
图5为图4中步骤S333的子步骤的流程图;
图6为图5中步骤S3337的子步骤的流程图;
图7为本申请实施例提供的任务调度方法的另一流程图;
图8为本申请实施例提供的任务中断的示意图;
图9为本申请实施例提供的执行信息入栈的示意图;
图10为本申请实施例提供的任务调度装置的功能模块框图。
图标:110-处理器;120-存储器;130-通信模块;140-任务调度装置;141-发送模块;142-确定模块;143-下发模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
请参阅图1,为本申请实施例提供的任务调度系统的组网示意图,该任务调度系统包括调度服务器以及多个节点,其中,各个节点分别与调度服务器通信,以实现信息及数据的交互。本实施例中,调度服务器可接收外部设备发送的处理任务,处理任务可包括例如编译任务、计算任务、存储类任务、读写任务等。调度服务器可结合处理任务的要求以及系统内各个节点的实际情况,实现处理任务的调度分配,以确定出节点来执行处理任务。
其中,调度服务器可以是单独的服务器,也可以是服务器集群,各个节点可以是服务器或终端设备等。
请参阅图2,为本申请实施例提供的图1所示的调度服务器的结构框图,所述调度服务器包括存储器120、处理器110及通信模块130。所述存储器120、处理器110以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器120用于存储程序或者数据。所述存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器110用于读/写存储器120中存储的数据或程序,并执行本申请任意实施例提供的任务调度方法。
通信模块130用于通过网络建立调度服务器与其它通信终端之间的通信连接,并用于通过网络收发数据。
应当理解的是,图2所示的结构仅为调度服务器的结构示意图,所述调度服务器还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
请参阅图3,图3示出了本申请实施例提供的任务调度方法的流程示意图,该任务调度方法可由图1中所示的调度服务器执行。应当理解,在其它实施例中,本实施例的任务调度方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该任务调度方法的详细步骤介绍如下。
步骤S310,在获取待处理任务后,向各所述节点发送携带有所述待处理任务的任务信息的查询命令,以使各所述节点检测自身是否支持执行所述待处理任务。
步骤S330,接收确定自身支持执行所述待处理任务的节点反馈的响应信息,并从反馈所述响应信息的节点中确定出目标节点。
步骤S350,将所述待处理任务下发至所述目标节点。
本实施例中,调度服务器可作为任务调度系统的网关,以实现与外部系统的设备之间的通信。在调度服务器接收到从外部设备所发送的待处理任务后,需要从任务调度系统中的多个节点中,确定出当前适合用于处理该待处理任务的节点。其中,该待处理任务可以是编译任务、计算任务或者是存储任务等。
任务调度系统中的各个节点可监听自身设备上的固定端口的消息事件,该固定端口为各个节点预先与调度服务器协商所确定的端口,可以是各个节点上的任一可用的端口,本实施例对此不作具体限制。
调度服务器可向各个节点的上述协商确定的固定端口发送查询命令,各个节点通过运行相关服务以监听自身设备上的固定端口,在监听到发送至该固定端口的查询命令时,触发后续操作。
调度服务器发送至各个节点的查询命令中,携带有待处理任务的任务信息,例如待处理任务的任务类型,其中,任务类型包括编译任务类型、存储任务类型、读写任务类型等。例如,查询命令可以是携带以下形式的任务类型为编译任务类型(Build)的查询命令:
{
TASK:Build
}
任务调度系统中的各个节点在监听到固定端口上的查询命令后,检测自身是否支持执行具有上述任务信息的待处理任务,例如是否支持上述任务类型,如上述的编译(Build)任务类型。如果支持该任务类型,则向调度服务器反馈响应信息,以告知调度服务器,如果自身不支持该任务类型,则不作响应。
调度服务器在接收到节点所反馈的响应信息后,可确定发送响应信息的节点可用于执行当前的待处理任务,如此,可从反馈响应信息的节点中确定出目标节点,以将待处理任务分配给目标节点。
本实施例中,在任务到来时,通过向任务调度系统中的各个节点发送查询命令,以使各个节点在确定自身支持该任务后主动上报响应信息。如此,可及时发现系统内适合处理当前任务的节点,使各个节点能够被及时、高效利用。
在本实施例中,由于任务调度系统中节点数量一般众多,可用于处理同一个任务类型的节点也一般为多个,即上述向任务调度服务器反馈响应信息的节点一般为多个。请参阅图4,本实施例中,可通过以下方式从多个节点中确定出目标节点:
步骤S331,根据所述响应信息,获取反馈所述响应信息中各所述节点的实际运行参数。
步骤S333,根据所述待处理任务所需的运行参数以及各所述节点的实际运行参数,从多个节点中确定出所述目标节点。
其中,请参阅图5,上述步骤S333包含如下几个子步骤:
步骤S3331,根据所述待处理任务所需的运行参数以及各所述节点的实际运行参数,从多个节点中确定出满足所述待处理任务的参数要求的节点。
步骤S3333,检测确定出的节点中是否具有处于空闲状态的节点,若具有,则执行以下步骤S3335,若不具有,则执行以下步骤S3337。
步骤S3335,将处于空闲状态的节点作为所述目标节点。
步骤S3337,按预设规则从确定出的节点中获得所述目标节点。
在本实施例中,系统中的各个节点在确定自身支持执行上述任务信息的待处理任务,例如支持执行上述任务类型的待处理任务时,向调度服务器所反馈的响应信息中携带有查询参数端口。调度服务器在获得节点所反馈的查询参数端口后,可向反馈响应信息的各个节点的查询参数端口发送参数查询指令,以获得对应节点的实际运行参数。其中,该查询参数端口为各个节点与调度服务器预先协商确定的运行参数信息查询的端口,例如可以是Query Port:81。
调度服务器所接收到的待处理任务携带有所需的运行参数,包括系统类型、CPU利用率、编译器最低版本号、安装包制作软件最低版本号等。即对执行该待处理任务的节点的运行环境的要求。对应地,上述获得的节点的实际运行参数也包括节点的系统类型、CPU利用率、编译器版本号、安装包制作软件版本号等。
基于待处理任务所需的运行参数和支持该待处理任务的任务类型的多个节点中,各个节点的实际运行参数,可从该多个节点中确定出满足待处理任务的参数要求的节点。即确定出的节点系统类型与待处理任务所需的系统类型相同,确定出的节点的CPU利用率高于待处理任务要求的CPU利用率,确定出的节点的编译器版本号高于待处理任务所要求的编译器最低版本号,并且,确定出的节点的安装包制作版本号高于待处理任务所要求的安装包制作软件最低版本号。以下示例性示出待处理任务所需的运行参数情况:
Para1(系统类型):windows
Para2(CPU利用率):30%
Para3(编译器最低版本号):15.9
Para4(安装包制作软件最低版本号):11.4.1
在本实施例中,如果上述确定出的节点中具有处于空闲状态的节点,即未执行其他任务的节点,则可将处于空闲状态的节点作为目标节点,以将待处理任务下发给空闲状态的节点并执行。而若上述确定出的节点中不具有处于空闲状态的节点,则可按预设规则从上述确定出的节点中获得目标节点。
在本实施例中,调度服务器接收到的待处理任务还携带有待处理任务的优先级,而各个处于繁忙状态的节点当前所执行的任务也具有优先级,请参阅图6,本实施例中,可通过以下方式按预设规则从确定出的多个节点中获得目标节点:
步骤S33371,获得所述待处理任务的优先级,以及确定出的各个节点当前所执行的任务的优先级。
步骤S33373,获得确定出的多个节点中当前所执行的任务的优先级最低的节点,在该节点所执行的任务的优先级低于所述待处理任务的优先级时,将该节点作为所述目标节点。
在本实施例中,一般性地,系统中的每个节点可支持运行多种类型的任务,根据系统执行各种类型的任务的要求,可为不同的任务类型设置不同的优先级,例如若对于着重数据存储的系统而言,则可将存储类型的任务设置较高优先级,而对于着重读写任务单的系统,则可将读写类型的任务设置较高优先级。具体地在本实施例中不作限制,可根据需求预先进行设置即可。
本实施例中,在满足待处理任务的运行参数所需的各个节点均处于繁忙状态时,采取的策略为高优先级的任务可中断低优先级的任务,以优先处理高优先级的任务。具体地,可以是中断多个繁忙状态的节点中,当前所执行的任务的优先级最低的节点,即将该节点作为目标节点。
需要说明的是,若待处理任务的优先级较低,具体地,在待处理任务的优先级低于上述当前所执行的任务的优先级最低的节点时,则需进行等待,以待存在节点完成当前的任务执行后,再进行待处理任务的执行。
本实施例中,通过以上步骤确定出目标节点后,将待处理任务下发至目标节点,以使目标节点执行该待处理任务。若该目标节点为上述的中断当前的执行任务的节点时,则在目标节点执行待处理任务之前,需要将该目标节点当前的执行任务中断。
可选地,请参阅图7,本实施例中,在调度服务器下发待处理任务至目标节点之前,所述任务调度方法还包括以下步骤:
步骤S340,向所述目标节点发送中断命令,以使所述目标节点中断当前的执行任务,获得所述执行任务的执行信息并保存。
调度服务器在向目标节点下发待处理任务之前,可向目标节点发送中断命令,以使目标节点终端当前的执行任务,并且获得执行任务的执行信息并保存,以便于后续目标节点返回执行该执行任务。
调度服务器下发至目标节点的待处理任务中携带有待处理任务的任务路径、待处理任务的编号、待处理任务包含的子任务的数量、开始执行子任务编号(即从其中的第几个子任务开始执行)、待处理任务的优先级以及执行进度汇报端口。其中,该执行进度汇报端口为调度服务器上的端口,目标节点可将任务执行进度信息通过该汇报端口上报至调度服务器,例如可每间隔预设时长汇报一次,如5秒或1秒等不限。调度服务器启动该汇报端口监听目标节点上报的信息。以下列举出待处理任务中携带的相关的信息:
{
TASK Path(任务路径):\\XXX\\XXX\\TASK
TASK uuid(任务编号):X
Sub TASK Number(子任务数量):4
Start Sub TASK(开始执行子任务编号):1
Priority(任务优先级):2
Report Port(执行进度汇报端口):8000
}
请再次参阅图7,本实施例所提供的任务调度方法还包括以下步骤:
步骤S360,在接收到所述目标节点发送的所述待处理任务执行完毕的反馈信息时,将保存的执行信息下发至所述目标节点,以使所述目标节点根据所述执行信息继续执行所述执行任务。
本实施例中,目标节点在执行完毕待处理任务之后,向调度服务器发送待处理任务执行完毕的反馈信息。调度服务器在接收到该反馈信息后,需要控制目标节点恢复执行上述所中断的执行任务。调度服务器可将上述保存的执行信息下发至目标节点,以使目标节点根据接收到的执行信息继续运行所述执行任务。
在本实施例中,为了避免目标节点在恢复执行被中断的执行任务时,重复执行之前已完成的部分,造成不必要的重复工作的问题,可通过以下方式执行任务的中断和任务的恢复:
由上述可知,一个任务一般包含多个子任务,可以将单个子任务作为最小任务执行单元。在中断目标节点的执行任务时,可获得目标节点当前所执行的子任务,如此,可获得目标节点的执行任务中未执行完毕的子任务的编号。将包含有执行任务的编号以及未执行完毕的子任务的编号的执行信息进行存储。可选地,可利用堆栈进行执行信息的存储。
调度服务器在接收到目标节点所反馈的待处理任务执行完毕的反馈信息时,将上述存储的目标节点被中断的执行任务中,还未执行完成的子任务的编号信息下发至目标节点,以使目标节点根据接收到的编号信息继续执行上述执行任务中还未执行完成的子任务。
请结合参阅图8和图9,以下将以图8中所示的架构对上述过程进行介绍。在待处理任务Y到来时,调度服务器对系统内的各个节点经过任务类型和运行参数的查询后,假设在任务调度系统中当前有节点A、节点B和节点C满足待处理任务Y的运行参数所需。其中,节点A当前的执行任务X,节点B当前的执行任务为X1,节点C当前的执行任务为X2。节点A、节点B和节点C均处于繁忙状态。
因此,需要从节点A、节点B和节点C中确定出需要进行任务中断以执行该待处理任务Y的目标节点。待处理任务Y的优先级为P1,节点A当前的执行任务X的优先级P2,而节点B和节点C当前的执行任务X1、X2的优先级均为P1。如此,则可确定出优先级P2小于优先级P1的节点A为目标节点。
节点A当前的执行任务包含四个子任务,当前节点A正在执行第三个子任务,即子任务3和子任务4当前未执行完成,而子任务1和子任务2已执行完成。
调度服务器可向节点A发送中断命令“interruput”,以中断节点A当前正在执行的子任务3。节点A在接收到调度服务器的中断命令后向调度服务器反馈自身当前的执行信息,反馈的执行信息可如下:
{
TASK uuid:X
Sub TASK Number:4
Start Sub TASK:3
}
调度服务器根据节点A所反馈的执行信息,可获得节点A当前的执行任务X、任务X包含四个子任务、当前未执行完成的子任务为子任务3-4。调度服务器将节点A的执行信息记录在堆栈中,记录的信息包含节点A被中断的任务X以及未执行完成的子任务3-4。
接着,调度服务器将待处理任务Y下发至节点A,以使节点A执行待处理任务Y。节点A在执行完成待处理任务Y后,即向调度服务器反馈执行完毕的反馈信息,调度服务器在接收到该反馈信息后,即查询堆栈中存储的节点A的最新一条记录,即上述的任务X以及子任务3-4。调度服务器将查询到的执行信息对应的子任务下发至节点A上继续执行。其中,下发的节点A的完整的执行信息可如以下所示:
{
TASK Path(任务路径):\\XXX\\XXX\\TASK
TASK uuid(任务编号):X
Sub TASK Number(子任务数量):2
Start Sub TASK(开始执行子任务编号):3
Priority(任务优先级):2
Report Port(执行进度汇报端口):8000
}
节点A在接收到上述执行信息后,即可从子任务3开始继续执行任务X,如此,可避免节点A在恢复执行之前被中断的任务时,重新执行之前已执行完成的子任务。
本实施例所提供的任务调度方法,首先,部署简单,整个部署过程仅需在所有可执行任务的设备上运行节点服务即可。通过调度服务器与节点查询及响应发现可执行任务的节点,降低分布式服务器配置工作的复杂度及工作量,任何主机或设备可随时通过使能服务升级为任务节点。高效地利用了网内所有可用的节点。
并且,对于环境依赖度较高的任务,通过调度服务器与节点的实时交互,根据反馈的环境运行参数进行判定,以此可准确地将任务调度至最恰当的节点上运行,使得调度任务的过程更加智能、更加精确。
此外,在高优先级的任务到来时,添加了对低优先级任务的当前运行子任务中断处理的机制,解决了当高优先级任务来临时,中断低优先级任务运行,且避免了后续不可断点运行,只能重头运行所导致的重复工作量的问题。
请参阅图10,为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种任务调度装置140的实现方式,可选地,该任务调度装置140可以采用上述图2所示的调度服务器的器件结构。进一步地,图10为本申请实施例提供的一种任务调度装置140的功能模块图。需要说明的是,本实施例所提供的任务调度装置140,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该任务调度装置140包括:
发送模块141,用于在获取待处理任务后,向各所述节点发送携带有所述待处理任务的任务信息的查询命令,以使各所述节点检测自身是否支持执行所述待处理任务。可以理解,该发送模块141可以用于执行上述步骤S310,关于该发送模块141的详细实现方式可以参照上述对步骤S310有关的内容。
确定模块142,用于接收确定自身支持执行所述待处理任务的节点反馈的响应信息,并从反馈所述响应信息的节点中确定出目标节点。可以理解,该确定模块142可以用于执行上述步骤S330,关于该确定模块142的详细实现方式可以参照上述对步骤S330有关的内容。
下发模块143,用于将所述待处理任务下发至所述目标节点。可以理解,该下发模块143可以用于执行上述步骤S350,关于该下发模块143的详细实现方式可以参照上述对步骤S350有关的内容。
本申请实施例所提供的任务调度装置140可执行本申请任意实施例所提供的任务调度方法,具备执行方法相应的功能模块和有益效果。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图2所示的存储器120中或固化于该调度服务器的操作系统(Operating System,OS)中,并可由图2中的处理器110执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器120中。
本申请实施例还提供一种包含机器可执行指令的机器可读存储介质,所述机器可执行指令在由计算机处理器执行时用于执行本申请任意实施例所提供的任务调度方法的相关操作。
综上所述,本申请实施例提供的任务调度方法、装置、调度服务器和机器可读存储介质,调度服务器在接收到待处理任务后,向系统中的各个节点发送携带待处理任务的任务信息的查询命令,以使各个节点在接收到查询命令后,检测自身是否支持执行该待处理任务,并在确定自身支持该待处理任务时发送响应信息至调度服务器。调度服务器在接收到确定自身支持支持所述待处理任务的节点反馈的响应信息时,从反馈响应信息的节点中确定出目标节点,并将待处理任务下发至目标节点。如此,可通过查询命令以使各个节点进行信息上报的方式,及时发现系统内可用的节点,并从中确定出目标节点以执行任务。避免了预先建立任务与节点之间的对应关系,并按该对应关系进行任务调度导致的可能存在节点无法被及时、高效利用的问题。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种任务调度方法,其特征在于,应用于任务调度系统中的调度服务器,所述任务调度系统还包括与所述调度服务器通信的多个节点,所述方法包括:
在获取待处理任务后,向各所述节点发送携带有所述待处理任务的任务信息的查询命令,以使各所述节点检测自身是否支持执行所述待处理任务;
接收确定自身支持执行所述待处理任务的节点反馈的响应信息,并从反馈所述响应信息的节点中确定出目标节点;
将所述待处理任务下发至所述目标节点。
2.根据权利要求1所述的任务调度方法,其特征在于,在反馈所述响应信息的节点为多个时,所述从反馈所述响应信息的节点中确定出目标节点的步骤,包括:
根据所述响应信息,获取反馈所述响应信息中各所述节点的实际运行参数;
根据所述待处理任务所需的运行参数以及各所述节点的实际运行参数,从多个节点中确定出所述目标节点。
3.根据权利要求2所述的任务调度方法,其特征在于,所述根据所述待处理任务所需的运行参数以及各所述节点的实际运行参数,从多个节点中确定出所述目标节点的步骤,包括:
根据所述待处理任务所需的运行参数以及各所述节点的实际运行参数,从多个节点中确定出满足所述待处理任务的参数要求的节点;
检测确定出的节点中是否具有处于空闲状态的节点,若具有,则将处于空闲状态的节点作为所述目标节点;
若不具有,则按预设规则从确定出的节点中获得所述目标节点。
4.根据权利要求3所述的任务调度方法,其特征在于,在确定出的节点为多个时,所述按预设规则从确定出的节点中获得所述目标节点的步骤,包括:
获得所述待处理任务的优先级,以及确定出的各个节点当前所执行的任务的优先级;
获得确定出的多个节点中当前所执行的任务的优先级最低的节点,在该节点所执行的任务的优先级低于所述待处理任务的优先级时,将该节点作为所述目标节点。
5.根据权利要求1所述的任务调度方法,其特征在于,在所述目标节点当前有执行任务时,所述将所述待处理任务下发至所述目标节点的步骤之前,所述方法还包括:
向所述目标节点发送中断命令,以使所述目标节点中断当前的执行任务;
获得所述执行任务的执行信息并保存。
6.根据权利要求5所述的任务调度方法,其特征在于,所述将所述待处理任务下发至所述目标节点的步骤之后,所述方法还包括:
在接收到所述目标节点发送的所述待处理任务执行完毕的反馈信息时,将保存的执行信息下发至所述目标节点,以使所述目标节点根据所述执行信息继续执行所述执行任务。
7.根据权利要求6所述的任务调度方法,其特征在于,所述执行任务包括多个子任务,所述执行信息包含所述目标节点还未执行完成的子任务的编号信息,所述将保存的执行信息下发至所述目标节点,以使所述目标节点根据所述执行信息继续执行所述执行任务的步骤,包括:
将所述目标节点还未执行完成的子任务的编号信息下发至所述目标节点,以使所述目标节点根据接收到的编号信息继续执行所述执行任务中还未执行完成的子任务。
8.一种任务调度装置,其特征在于,应用于任务调度系统中的调度服务器,所述任务调度系统还包括与所述调度服务器通信的多个节点,所述装置包括:
发送模块,用于在获取待处理任务后,向各所述节点发送携带有所述待处理任务的任务信息的查询命令,以使各所述节点检测自身是否支持执行所述待处理任务;
确定模块,用于接收确定自身支持执行所述待处理任务的节点反馈的响应信息,并从反馈所述响应信息的节点中确定出目标节点;
下发模块,用于将所述待处理任务下发至所述目标节点。
9.一种调度服务器,其特征在于,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当调度服务器运行时,处理器执行所述机器可执行指令,以执行权利要求1-7中任意一项所述的任务调度方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令被执行时实现权利要求1-7中任意一项所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911264864.3A CN111736965A (zh) | 2019-12-11 | 2019-12-11 | 任务调度方法、装置、调度服务器和机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911264864.3A CN111736965A (zh) | 2019-12-11 | 2019-12-11 | 任务调度方法、装置、调度服务器和机器可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111736965A true CN111736965A (zh) | 2020-10-02 |
Family
ID=72645931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911264864.3A Pending CN111736965A (zh) | 2019-12-11 | 2019-12-11 | 任务调度方法、装置、调度服务器和机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736965A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256437A (zh) * | 2020-11-10 | 2021-01-22 | 网易(杭州)网络有限公司 | 一种任务分发方法及装置 |
CN112468548A (zh) * | 2020-11-13 | 2021-03-09 | 苏州智加科技有限公司 | 数据处理方法、装置、系统、服务器及可读存储介质 |
CN113608852A (zh) * | 2021-08-03 | 2021-11-05 | 科大讯飞股份有限公司 | 任务调度方法、调度模块、推理节点和协同作业系统 |
CN113687932A (zh) * | 2021-08-30 | 2021-11-23 | 上海商汤科技开发有限公司 | 一种任务调度的方法、装置、系统、电子设备及存储介质 |
CN113965481A (zh) * | 2021-10-11 | 2022-01-21 | 山东星维九州安全技术有限公司 | 一种网络资产探测多任务调度优化方法 |
CN114461354A (zh) * | 2020-11-10 | 2022-05-10 | 中移物联网有限公司 | 一种任务调度方法、装置、服务器和执行器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391918A (zh) * | 2014-11-19 | 2015-03-04 | 天津南大通用数据技术股份有限公司 | 基于对等部署的分布式数据库查询优先级管理的实现方法 |
CN108563500A (zh) * | 2018-05-08 | 2018-09-21 | 深圳市零度智控科技有限公司 | 基于云平台的任务调度方法、云平台及计算机存储介质 |
CN108769254A (zh) * | 2018-06-25 | 2018-11-06 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN110162388A (zh) * | 2019-04-26 | 2019-08-23 | 深圳智链物联科技有限公司 | 一种任务调度方法、系统及终端设备 |
CN110458468A (zh) * | 2019-08-16 | 2019-11-15 | 北京百度网讯科技有限公司 | 一种任务处理方法、装置、电子设备及存储介质 |
-
2019
- 2019-12-11 CN CN201911264864.3A patent/CN111736965A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391918A (zh) * | 2014-11-19 | 2015-03-04 | 天津南大通用数据技术股份有限公司 | 基于对等部署的分布式数据库查询优先级管理的实现方法 |
CN108563500A (zh) * | 2018-05-08 | 2018-09-21 | 深圳市零度智控科技有限公司 | 基于云平台的任务调度方法、云平台及计算机存储介质 |
CN108769254A (zh) * | 2018-06-25 | 2018-11-06 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN110162388A (zh) * | 2019-04-26 | 2019-08-23 | 深圳智链物联科技有限公司 | 一种任务调度方法、系统及终端设备 |
CN110458468A (zh) * | 2019-08-16 | 2019-11-15 | 北京百度网讯科技有限公司 | 一种任务处理方法、装置、电子设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256437A (zh) * | 2020-11-10 | 2021-01-22 | 网易(杭州)网络有限公司 | 一种任务分发方法及装置 |
CN114461354A (zh) * | 2020-11-10 | 2022-05-10 | 中移物联网有限公司 | 一种任务调度方法、装置、服务器和执行器 |
CN112468548A (zh) * | 2020-11-13 | 2021-03-09 | 苏州智加科技有限公司 | 数据处理方法、装置、系统、服务器及可读存储介质 |
CN113608852A (zh) * | 2021-08-03 | 2021-11-05 | 科大讯飞股份有限公司 | 任务调度方法、调度模块、推理节点和协同作业系统 |
CN113687932A (zh) * | 2021-08-30 | 2021-11-23 | 上海商汤科技开发有限公司 | 一种任务调度的方法、装置、系统、电子设备及存储介质 |
CN113965481A (zh) * | 2021-10-11 | 2022-01-21 | 山东星维九州安全技术有限公司 | 一种网络资产探测多任务调度优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111736965A (zh) | 任务调度方法、装置、调度服务器和机器可读存储介质 | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
US7970892B2 (en) | Tuning and optimizing distributed systems with declarative models | |
CN111818159B (zh) | 数据处理节点的管理方法、装置、设备及存储介质 | |
US20080030764A1 (en) | Server parallel aggregation | |
CN107016480B (zh) | 任务调度方法、装置及系统 | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
CN107479984B (zh) | 基于消息的分布式空间数据处理系统 | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
CN115242877B (zh) | 面向多K8s集群的Spark协同计算、作业方法及装置 | |
CN113132456B (zh) | 一种基于截止时间感知的边云协同任务调度方法及系统 | |
CN112559461A (zh) | 文件传输方法及装置、存储介质及电子设备 | |
CN112162852A (zh) | 一种多架构cpu节点的管理方法、装置及相关组件 | |
CN114201197A (zh) | 固件升级方法、装置、电子设备及可读存储介质 | |
CN112865993A (zh) | 分布式主从系统中从节点的切换方法和装置 | |
CN106843890B (zh) | 基于智能决策的传感器网络、节点及其运行方法 | |
CN113658351A (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN110929813B (zh) | 标签打印方法及系统、工控机、计算机可读存储介质 | |
CN112114938A (zh) | 事务处理方法、装置及服务器 | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
CN104092794A (zh) | 批量进程处理方法和系统 | |
CN114546648A (zh) | 任务处理方法及任务处理平台 | |
TWM610003U (zh) | 流程機器人管理系統 | |
CN114443262A (zh) | 计算资源管理方法、装置、设备及系统 | |
US11954525B1 (en) | Method and apparatus of executing collaborative job for spark faced to multiple K8s clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |