掌桥专利:专业的专利平台
掌桥专利
首页

任务调度方法、系统及计算设备

文献发布时间:2023-06-19 10:24:22


任务调度方法、系统及计算设备

技术领域

本发明涉及计算机与互联网技术领域,特别涉及一种任务调度方法、任务调度系统及计算设备。

背景技术

在实际业务开发中,经常需要使用一些定时任务来解决问题,业务开发人员通常会使用Crontab、SpringCron、QuartZ来进行任务调度。但是在任务数量和数据量巨大的场景下,例如在大数据场景下,各个任务之间的依赖关系复杂,任务的管理非常混乱,这不仅会严重影响任务的执行效率,还会导致一系列问题:任务的生命周期无法统一协调管理、任务之间存在依赖时难以进行编排、无法分组或指定机器来执行任务等。

现有技术中,有一种方案是基于QuartZ进行任务调度,QuartZ作为开源项目,是一套完全有Java编写的开源调度任务调度的框架,通过触发器设置任务定时运行规则,控制任务的运行时间。这种方案的缺点是无法统一的管理任务的生命周期,并且无法进行任务的编排。

还有一种方案是基于Azkaban进行任务调度,Azkaban是由Linkedin开源的一个批量工作流任务调度器,用于在一个工作流内以特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供便于操作的Web用户界面来维护和跟踪工作流。该方案的主要缺点是无法进行分布式的部署,任务编排必须要基于流来完成。

为此,需要一种任务调度方法来解决上述技术方案中存在的问题。

发明内容

为此,本发明提供一种任务调度方法和任务调度系统,以力图解决或者至少缓解上面存在的问题。

根据本发明的一个方面,提供了一种任务调度方法,在计算设备中执行,所述计算设备与多个执行设备连接,所述方法包括:接收任务执行请求,所述任务执行请求包括任务执行表,所述任务执行表中包括多个待执行任务;判断所述任务执行表中每个待执行任务对应的上游任务是否均执行成功;如果确定所述待执行任务的上游任务均执行成功,则触发所述待执行任务,确定用于执行所述待执行任务的目标执行设备;以及将所述待执行任务发送至所述目标执行设备,以便所述目标执行设备执行任务。

可选地,在根据本发明的任务调度方法中,确定用于执行所述待执行任务的目标执行设备的步骤包括:获取包括多个执行设备信息的执行设备列表,所述执行设备列表中包括与多个执行设备分别相对应的设备信息;基于多个执行设备的设备信息确定目标执行设备。

可选地,在根据本发明的任务调度方法中,所述设备信息包括执行设备的心跳、内存、CPU、当前执行的任务数量中的一种或多种。

可选地,在根据本发明的任务调度方法中,判断待执行任务在任务执行表中的上游任务是否均执行成功的步骤包括:为每个待执行任务注册依赖监听,以监听所述任务执行表中的每个待执行任务,并判断每个待执行任务是否执行成功;在确定一个任务执行成功时,触发其他依赖监听判断执行成功的任务是否为其他依赖监听对应的待执行任务的上游任务;如果是,则遍历所述任务执行表中与所述待执行任务相对应的每个上游任务,以确定每个上游任务是否均执行成功。

可选地,在根据本发明的任务调度方法中,在将所述待执行任务发送至目标执行设备之后,还包括步骤:判断所述任务是否执行成功;如果执行成功,则触发其他依赖监听判断执行成功的任务是否为其他依赖监听对应的待执行任务的上游任务。

可选地,在根据本发明的任务调度方法中,判断所述任务是否执行成功的步骤还包括:如果所述任务执行失败,则向客户端发送该任务执行失败的报警消息。

可选地,在根据本发明的任务调度方法中,所述任务执行表中的多个待执行任务呈树形结构排布,每个待执行任务对应所述树形结构中的一个节点。

可选地,在根据本发明的任务调度方法中,每个待执行任务在树形结构中对应的节点适于由所述待执行任务的执行周期和执行时间来确定。

可选地,在根据本发明的任务调度方法中,所述计算设备与调度平台连接,所述调度平台适于基于多个待执行任务生成任务执行表,并基于所述任务执行表向计算设备发送任务执行请求。

根据本发明的一个方面,提供了一种任务调度系统,包括调度集群,所述调度集群包括:调度服务器,适于执行如上所述的任务调度方法;以及多个执行设备,每个执行设备与所述调度服务器连接,所述执行设备适于执行所述调度服务器分配的待执行任务。

可选地,在根据本发明的任务调度系统中,还包括:调度平台,与所述调度服务器连接,所述调度平台适于基于多个待执行任务生成任务执行表,并基于所述任务执行表向调度服务器发送任务执行请求。

根据本发明的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述的任务调度方法的指令。

根据本发明的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述方法。

根据本发明的技术方案,提供了一种任务调度方法和系统,通过创建树形结构的任务执行表,基于任务执行表来调度多个待执行任务的执行,实现统筹管理所有待执行任务。在树形结构的任务执行表中,每个任务与上游任务之间存在依赖关系,通过对每个任务分别注册依赖监听,能够监听每个任务的执行状态,并且,每个任务的触发执行依赖于与该任务具有依赖关系的的上游任务。这样,各个任务之间既存在依赖触发关系,又相对独立运行,不仅实现了对多个待执行任务的统筹管理和有序调度,而且,每个任务的变更不会影响其他任务的执行,能够实现灵活高效地调度执行大量定时任务,以便分布式数据系统的数据同步更加高效。

此外,根据本发明的任务调度方法,在触发待执行任务时,通过将待执行任务分配给当前最匹配的目标执行设备来执行,不仅能够提高任务的执行效率,而且,能够合理利用现有的执行设备资源。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个实施例的任务调度系统100的示意图;

图2示出了根据本发明一个实施例的计算设备200的示意图;以及

图3示出了根据本发明一个实施例的任务调度方法300的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的任务调度系统100的示意图。

如图1所示,该系统100可包括调度集群130和调度平台110,调度平台110与调度集群130通信连接,调度集群130包括调度服务器120以及多个适于执行任务的执行设备125,调度服务器120与多个执行设备125可以分布式部署在不同的地理位置,并且调度服务器120分别与多个执行设备125通信连接,例如通过有线或无线的方式网络连接。这里,本发明对集群130中执行设备125的具体数量和部署不做限制。

调度平台110可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,也可以实现为诸如手机、平板电脑、笔记本电脑、电视盒子、可穿戴设备等移动设备。运营人员可以在调度平台110进行任务的维护,例如对多个待执行任务进行运维和编排,并在调度平台110发送对多个待执行任务的任务执行请求。调度平台110可以响应运营人员的请求,将包括多个待执行任务的任务执行请求发送至调度集群130。

调度集群130整体可用于为分布式数据系统提供数据变更管理服务,以实现分布式数据系统中的各个数据存储设备之间的数据同步更新。例如在分布式数据系统中的数据有变更需求时,通过在调度平台110基于数据变更需求创建任务、并通过调度集群130执行任务,能实现各个数据存储设备之间的数据同步更新。

其中,调度服务器120可用于提供任务调度服务,即协调多个任务的执行,例如将每个待执行任务分配给集群130中的合适的执行设备125来执行。

在一个实施例中,调度服务器120与各个执行设备125之间可以实现为Master-Slave结构,其中,调度服务器120可以实现为Master服务器,每个执行设备125分别实现为Slave服务器。调度服务器120与各个执行设备125之间可以基于TCP协议的框架Netty进行消息传递。

在一种实施方式中,分布式数据系统包括分布式部署的多个数据存储设备。调度集群130中的调度服务器120、每个执行设备125分别与相应的数据存储设备耦接。这样,基于调度集群130可以维护和管理分布式数据系统中的数据的变更,当分布式数据系统中的数据有变更需求时,通过创建任务,并利用调度集群130协调执行任务,能实现分布式数据系统中的各个数据存储设备之间的数据同步更新。

在一个实施例中,调度平台110与调度服务器120通信连接,例如通过有线或无线的方式网络连接,但本发明不限于此。调度平台110与调度服务器120也可以实现为一个计算设备,调度平台110驻留在计算设备的前端。

调度服务器120可以接收调度平台110发送的任务执行请求,这里,任务执行请求包括任务执行表,任务执行表中包括多个待执行任务。应当指出,调度平台110可以基于多个待执行任务生成任务执行表,运营人员在调度平台110触发任务执行请求时,调度平台110基于任务执行表向调度服务器120发送任务执行请求,以请求调度服务器120执行任务执行表中的多个待执行任务。

在一种实施方式中,待执行任务为定时任务,运营人员在调度平台110可以基于每个待执行任务的执行周期和执行时间来对多个待执行任务进行编排,调度平台110基于多个待执行任务以及每个待执行任务对应的执行周期和执行时间生成树形结构的任务执行表。也就是说,任务执行表中的多个待执行任务呈树形结构排布,每个待执行任务对应树形结构中的一个节点。这里,每个待执行任务在树形结构中对应的节点是由待执行任务的执行周期和执行时间来确定的。

需要说明的是,在树形结构的任务执行表中,各个待执行任务之间基于各自对应的节点位置存在依赖关系。具体而言,每个节点的待执行任务分别可以对应一个或多个上游任务,且每个节点的待执行任务与相应的上游任务在触发执行时具有依赖关系。

需要说明的是,树形结构中的每个节点分别可以对应一个父节点、一个或多个子节点,每个节点的父节点、父节点的父节点对应的待执行任务均为该节点对应的上游任务。也就是说,该节点的待执行任务对应的上游任务包括:从根节点到该节点所经分支上的所有节点对应的待执行任务。

在一个实施例中,调度服务器120适于执行本发明的任务调度方法300。本发明的任务调度方法300将在下文中详述。

在根据本发明的实施例中,调度服务器120可以基于任务执行表中的各个待执行任务之间的依赖关系来控制任务的执行,实现对任务的有序调度。

具体地,调度服务器120在接收到调度平台110的任务执行请求后,判断任务执行表中每个待执行任务对应的上游任务是否均执行成功。调度服务器120在确定任务执行表中的(任意一个)待执行任务对应的上游任务全部执行成功时,才会触发这个待执行任务的执行。在触发待执行任务后,确定集群130中用于执行该待执行任务的目标执行设备,并将该待执行任务分配给目标执行设备来执行。

在一个实施例中,通过为任务执行表中的每个待执行任务注册依赖监听,以监听任务执行表中的每个待执行任务的执行状态,并判断每个待执行任务是否执行成功。在确定任意一个任务执行成功时,触发其他每个依赖监听来判断:该执行成功的任务是否是相应的待执行任务(即是其他依赖监听自身所监听的任务)的上游任务。如果是上游任务,则遍历任务执行表中与待执行任务(即是依赖监听自身所监听的任务)相对应的每个上游任务,以便判断每个上游任务是否均执行成功。

需要说明的是,依赖监听即是基于待执行任务与相应的一个或多个上游任务之间的依赖关系而对待执行任务注册的监听。基于依赖监听触发任务的执行依赖于与该任务具有依赖关系的的上游任务。也就是说,基于对待执行任务注册依赖监听,待执行任务能否触发执行取决于每个上游任务是否均执行成功。

根据本发明的任务调度系统,通过创建树形结构的任务执行表,调度服务器基于任务执行表来调度多个待执行任务的执行,实现统筹管理所有待执行任务。在树形结构的任务执行表中,每个任务与上游任务之间存在依赖关系,通过对每个任务分别注册依赖监听,能够监听每个任务的执行状态,并且,每个任务的触发执行依赖于与该任务具有依赖关系的的上游任务。这样,各个任务之间既存在依赖触发关系,又相对独立运行,不仅实现了对多个待执行任务的统筹管理和有序调度,而且,每个任务的变更不会影响其他任务的执行,能够实现灵活高效地调度执行大量定时任务,以便分布式数据系统的数据同步更加高效。此外,通过为分布式部署的多个执行设备合理分配待执行任务,能保证系统的高可用性,实现负载均衡,有利于多个任务的高效稳定运行。

根据本发明的实施例,上述任务调度系统100中的各种部件,可以通过诸如局域网(LAN)或者如因特网的广域网(WAN)的一个或多个网络进行通信。其中,调度平台110、调度服务器120、每个执行设备125均可以通过如下所述的计算设备200来实现。

图2示出了根据本发明一个实施例的计算设备200的示意图。

如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。

取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。

取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。

计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

在根据本发明的实施例中,计算设备200被配置为执行根据本发明的任务调度方法。计算设备200的应用222中包括执行本发明的任务调度方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的任务调度方法300。计算设备200通过执行本发明的任务调度方法300,能实现对多个任务的调度执行。

图3示出了根据本发明一个实施例的任务调度方法300的流程图。方法300适于在计算设备(如前述计算设备200)中执行。

在根据本发明的实施例中,计算设备200与调度平台110耦接,可以接收调度平台110发送的任务执行请求。计算设备200分别与多个执行设备125通信连接,这里,计算设备200与多个执行设备125共同组成一个调度集群130。其中,计算设备200可以将待执行任务分配给合适的执行设备125来执行,以协调多个任务的执行。

需要说明的是,待执行任务例如是在调度平台110基于分布式数据系统的数据更新需求创建的任务,通过将多个待执行任务提交至计算设备200,并由计算设备200将待执行任务分配给合适的执行设备125来执行,能实现分布式数据系统中的各个数据存储设备之间的数据同步更新。

如图3所示,任务调度方法300始于步骤S310。

在步骤S310中,接收调度平台110发送的任务执行请求,任务执行请求包括任务执行表,任务执行表中多个待执行任务。这里,应当指出,调度平台110可以基于多个待执行任务生成任务执行表,运营人员在调度平台110触发任务执行请求时,调度平台110响应于运营人员的请求,基于任务执行表向调度服务器120发送任务执行请求,以请求调度服务器120执行任务执行表中的多个待执行任务。

根据一个实施例,待执行任务为定时任务,运营人员在调度平台110可以基于每个待执行任务的执行周期和执行时间来对多个待执行任务进行编排,调度平台110基于多个待执行任务以及每个待执行任务对应的执行周期和执行时间生成树形结构的任务执行表。也就是说,任务执行表中的多个待执行任务呈树形结构排布,每个待执行任务对应树形结构中的一个节点。这里,每个待执行任务在树形结构中对应的节点是由待执行任务的执行周期和执行时间来确定的。

根据本发明的实施例,在树形结构的任务执行表中,各个待执行任务之间基于各自对应的节点位置存在依赖关系,具体而言,每个节点的待执行任务分别可以对应一个或多个上游任务,且每个节点的待执行任务与相应的上游任务在触发执行时具有依赖关系。

需要说明的是,树形结构中的每个节点分别可以对应一个父节点、一个或多个子节点,每个节点的父节点、父节点的父节点对应的待执行任务均为该节点对应的上游任务。也就是说,该节点的待执行任务对应的上游任务包括:从根节点到该节点所经分支上的所有节点对应的待执行任务。

在根据本发明的实施例中,计算设备200可以基于任务执行表中的各个待执行任务之间存在的依赖关系来控制任务的执行,实现对任务的有序调度。

在步骤S320中,计算设备200判断任务执行表中每个待执行任务对应的上游任务是否全部执行成功。这里,在确定任务执行表中的待执行任务的上游任务全部执行成功时,才会触发该待执行任务的执行。

随后,在步骤S330中,如果确定任务执行表中的任意一个待执行任务的上游任务全部执行成功,则触发该待执行任务,确定集群130中用于执行该待执行任务的目标执行设备,以便将该待执行任务分配给目标执行设备来执行。

具体而言,计算设备200通过获取包括多个执行设备信息的执行设备列表,执行设备列表中包括与每个执行设备分别相对应的设备信息,进而,基于多个执行设备的设备信息来确定目标执行设备。

根据一个实施例,执行设备列表中的执行设备的设备信息包括心跳、内存、CPU、当前执行的任务数量等信息,但本发明不限于所列举的设备信息的具体种类。这里,计算设备200通过获取执行设备列表,能够获取集群130中的所有执行设备的设备信息,设备信息可以反应相应执行设备当前的运行状态和执行任务的能力,换言之,计算设备200可以根据设备信息确定每个执行设备的运行状态和执行任务的能力。这样,计算设备200通过评估每个执行设备当前的待执行任务和执行任务的能力,可以从多个执行设备中选取一个与当前的待执行任务最匹配的目标执行设备。

应当理解,在触发待执行任务时,通过将待执行任务分配给当前最匹配的目标执行设备来执行,不仅能够提高任务的执行效率,而且,能够合理利用现有的执行设备资源,实现负载均衡,有利于多个任务的高效稳定运行。

最后,在步骤S340中,将所述待执行任务发送至所确定的目标执行设备,以便由目标执行设备执行该任务。应当理解,在将待执行任务发送至目标执行设备时,该任务即启动执行。

根据一个实施例,可以按照以下方法来判断任务执行表中每个待执行任务对应的上游任务是否全部执行成功:

为任务执行表中的每个待执行任务注册依赖监听,以监听任务执行表中的每个待执行任务的执行状态,并判断每个待执行任务是否执行成功。

在确定任意一个任务执行成功时,触发其他每个依赖监听来判断:该执行成功的任务是否是相应的待执行任务(即是其他依赖监听自身所监听的任务)的上游任务。如果是上游任务,则遍历任务执行表中与待执行任务(即是依赖监听自身所监听的任务)相对应的每个上游任务,判断每个上游任务是否均执行成功。

这里,需要说明的是,依赖监听即是基于待执行任务与相应的一个或多个上游任务之间的依赖关系而对待执行任务注册的监听。依赖监听触发任务的执行依赖于与该任务具有依赖关系的的上游任务。也就是说,基于对待执行任务注册依赖监听,待执行任务能否触发执行取决于每个上游任务是否均执行成功。

根据一个实施例,在步骤S330中将待执行任务发送至目标执行设备之后(任务启动),基于对该任务注册的依赖监听,来判断该任务是否被目标执行设备执行成功。如果执行成功,则触发其他每个依赖监听来判断:该执行成功的任务是否是相应的待执行任务(即是其他依赖监听自身所监听的任务)的上游任务。

如果待执行任务执行失败,则向调度平台110发送该任务执行失败的报警消息,以便调度平台110的运营人员及时处理执行失败的任务。

可见,根据本发明的任务调度方法,通过创建树形结构的任务执行表,计算设备基于任务执行表来调度多个待执行任务的执行,实现统筹管理所有待执行任务。在树形结构的任务执行表中,每个任务与上游任务之间存在依赖关系,通过对每个任务分别注册依赖监听,能够监听每个任务的执行状态,并且,每个任务的触发执行依赖于与该任务具有依赖关系的的上游任务。这样,各个任务之间既存在依赖触发关系,又相对独立运行,不仅实现了对多个待执行任务的统筹管理和有序调度,而且,每个任务的变更不会影响其他任务的执行,能够实现灵活高效地调度执行大量定时任务,以便分布式数据系统的数据同步更加高效。

A8、如A7所述的任务调度方法,其中,每个待执行任务在树形结构中对应的节点适于由所述待执行任务的执行周期和执行时间来确定。

A9、如A1-A8任一项所述的任务调度方法,其中,所述计算设备与调度平台连接,所述调度平台适于基于多个待执行任务生成任务执行表,并基于所述任务执行表向计算设备发送任务执行请求。

B11、如B10所述的任务调度系统,其中,还包括:调度平台,与所述调度服务器连接,所述调度平台适于基于多个待执行任务生成任务执行表,并基于所述任务执行表向调度服务器发送任务执行请求。

这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。

在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的多语言垃圾文本的识别方法。

以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。

在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

相关技术
  • 一种并行计算设备的任务调度方法及任务调度装置
  • 任务调度方法、系统及计算设备
技术分类

06120112533682