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

一种资源调度的方法、装置、设备及存储介质

文献发布时间:2023-06-19 09:26:02


一种资源调度的方法、装置、设备及存储介质

技术领域

本发明实施例涉及计算机技术,尤其涉及一种资源调度的方法、装置、设备及存储介质。

背景技术

在公有云平台多租户环境下,随着租户的增多,每日运行任务的量级可达到百万以上,由于计算资源有限,将会有大量作业处于等待资源的状态下,因此需要在存放大量作业时又能够快速处理作业。

现有技术中,可以为作业配置优先级,优先处理优先级高的作业,优先级低的作业则会长时间处于待定状态。低优先级的作业容易被饿死,无法实现根据等待时间分配作业的调度,难以保证所有作业都被及时处理,各作业调度时也没有进行针对性的机器配置,资源调度的效率较低。

发明内容

本发明实施例提供一种资源调度的方法、装置、设备及存储介质,以提高资源调度的效率。

第一方面,本发明实施例提供了一种资源调度方法,该方法包括:

获取待处理任务队列的作业分值;其中,所述作业分值用于表示待处理的候选作业的作业优先级和插入所述待处理任务队列的时间信息;

根据所述作业分值,确定待处理的目标作业;

根据预设的机器配置策略,确定所述目标作业的目标执行机,以完成所述目标作业的资源调度。

第二方面,本发明实施例还提供了一种资源调度装置,该装置包括:

分值获取模块,用于获取待处理任务队列的作业分值;其中,所述作业分值用于表示待处理的候选作业的作业优先级和插入所述待处理任务队列的时间信息;

作业确定模块,用于根据所述作业分值,确定待处理的目标作业;

执行机确定模块,用于根据预设的机器配置策略,确定所述目标作业的目标执行机,以完成所述目标作业的资源调度。

第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任意实施例所述的资源调度方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所述的资源调度方法。

本发明实施例获取待处理任务队列中候选作业的作业分值,根据作业分值中的优先级和插入队列的时间信息,从候选作业中确定目标作业,根据预设的机器配置策略,为目标作业配置目标执行机,完成目标作业的资源调度。解决了现有技术中,只根据优先级处理候选作业,造成低优先级作业被饿死的问题,实现对候选作业的及时调度,减少作业等待时间,根据机器配置策略,充分利用机器资源,提高资源调度效率。

附图说明

图1是本发明实施例一中的一种资源调度方法的流程示意图;

图2是本发明实施例二中的一种资源调度方法的流程示意图;

图3是本发明实施例三中的一种资源调度装置的结构框图;

图4是本发明实施例四中的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种资源调度方法的流程示意图,本实施例可适用于对多个作业进行调度的情况,该方法可以由一种资源调度装置来执行。如图1所示,该方法具体包括如下步骤:

步骤110、获取待处理任务队列的作业分值;其中,作业分值用于表示待处理的候选作业的作业优先级和插入待处理任务队列的时间信息。

其中,待处理的候选作业存放在待处理任务队列中,当待处理的候选作业被处理完成,则将该候选作业从待处理任务队列中移除。每个候选作业在待处理任务队列中都匹配有一个作业分值,作业分值与候选作业的唯一标识进行关联。候选作业的唯一标识可以由候选作业的申请时间和网卡地址等信息进行确定,例如,可以通过Java获取UUID(Universally Unique Identifier,通用唯一识别码)作为唯一标识。先生成唯一标识,在将候选作业存放在待处理任务队列时,生成作业分值,并将作业分值与唯一标识进行关联,存放在待处理任务队列中。其中,作业分值可以用于表示待处理的候选作业的作业优先级和候选作业插入待处理任务队列的时间信息,根据候选作业插入待处理任务队列的时间信息,可以确定候选作业插入待处理任务队列的时间和候选作业在待处理任务队列中待处理的等待时间。作业优先级可以包括1至99级,作业优先级的数值越大,优先级越高。作业分值中,表示候选作业插入待处理任务队列的时间信息的数值越大,说明该候选作业插入待处理任务队列的时间越早。

本实施例中,可选的,作业分值为含有15位数值的字符串,其中,第一位和第二位数值表示作业优先级,第三位至第十五位数值表示候选作业插入待处理任务队列的时间信息。

具体的,作业分值可以由一串包含数字的字符串表示,作业分值中可以包括15个数值。其中,第一位和第二位表示作业优先级,可以是1至99之间的数字,例如,05或77。第三位至第十五位数值表示候选作业插入待处理任务队列的时间信息,时间信息的数值可以是候选作业插入待处理任务队列的时间与预设时间点之间的差值。表示时间信息的数值的位数越多,对时间信息的计算结果越精确,例如,可以采用纳秒或皮秒单位进行时间信息的计算。这样设置的有益效果在于,根据优先级的高低,可以优先处理高优先级的作业,避免重要作业被延时,根据候选作业插入待处理任务队列的时间信息,可以得到候选作业等待被处理的时间,避免候选作业长时间未处理,造成作业被饿死或遗漏,提高各作业被处理的效率,进而提高资源调度效率。

本实施例中,可选的,获取待处理任务队列的作业分值,包括:根据预设时间点,确定候选作业插入待处理任务队列的时间与预设时间点之间的时间差值;根据预设的作业优先级和所述时间差值,生成待处理任务队列中候选作业的作业分值。

具体的,候选作业的优先级为预先确定,插入待处理任务队列的时间信息由候选作业插入待处理任务队列的时间与预设时间点之间的时间差值表示。预设的时间点可以是未来的某一时间点,插入待处理任务队列的时间与预设时间点之间的时间差值越大,说明候选作业插入待处理任务队列的时间越早,该候选作业越有可能被处理。例如,预设时间点可以是2100年1月1日的0时0分0秒。将预设的作业优先级和计算出的时间差值进行拼装,获取到完整的作业分值。这样设置的有益效果在于,根据优先级和时间差值,兼顾作业的优先级和等待时间,使得高优的作业尽快得到调度,低优的作业也不会得不到机会调度。综合考虑处理候选作业的顺序,优先考虑作业优先级,若作业优先级一致,则考虑候选作业插入待处理任务队列的时间信息。也就是说,作业分值的数值越大,越会被优先处理,优先为作业分值大的作业进行资源调度,避免了候选作业等待时间过久或遗漏候选作业,提高在进行资源调度时的作业处理效率。

步骤120、根据作业分值,确定待处理的目标作业。

其中,在获取到作业分值后,比较各作业分值的大小,选取符合预设要求的候选作业为目标作业。例如,可以将作业分值最大的候选作业作为目标作业。

本实施例中,可选的,根据作业分值,确定待处理的目标作业,包括:根据作业分值的数值大小,对待处理任务队列中的候选作业进行排序;将排序结果符合预设要求的候选作业,确定为目标作业。

具体的,作业分值在候选作业要插入待处理任务队列时生成,在生成作业分值后,将该作业分值的数值与待处理任务队列中已存放的作业分值数值进行大小比较,得到由大到小的排序结果,将作业分值按照排序结果存放在待处理任务队列中,作业分值越大越靠近队列头,即优先级越高和越早插入队列的候选作业越靠近队列头。预设要求可以是获取最大作业分值的候选作业,获取目标作业时,从队列头开始获取,即得到满足预设要求的候选作业。这样设置的有益效果在于,根据作业分值的数值比较,可以快速得到需要优先处理的作业,在将作业分值插入待处理任务队列时即进行数值比较,在获取目标作业时可以直接获取队列头的候选作业,提高目标作业的获取效率,,以便于优先对目标作业进行资源调度,有利于对资源进行合理有效的调节和使用,满足各作业的处理需求。

步骤130、根据预设的机器配置策略,确定目标作业的目标执行机,以完成目标作业的资源调度。

其中,在确定目标作业后,对目标作业进行资源调度和处理,为目标作业配置至少一个目标执行机,将目标作业发送给目标执行机,由目标执行机处理目标作业。可以根据预设的机器配置策略,确定目标作业的目标执行机,例如,可以将目标作业与目标执行机进行关联,指定目标作业的目标执行机。

本实施例中,可选的,在根据预设的机器配置策略,确定目标作业的目标执行机之前,还包括:比较目标作业的目标逻辑资源量和调度系统剩余的全局逻辑资源量;若目标逻辑资源量大于全局逻辑资源量,则继续获取待处理任务队列中的新目标作业进行调度,并将目标作业存放在等待列表中,在预设的等待时间后,重新获取该目标作业;若目标逻辑资源量小于或等于全局逻辑资源量,则根据预设的机器配置策略,确定目标作业的目标执行机。

具体的,目标逻辑资源量是量化的目标作业所需的资源量,每个目标作业的目标逻辑资源量可以设置为一致或不一致。全局逻辑资源是对系统资源进行量化得到系统的资源量,系统资源可以是执行机的CPU(Central Processing Unit,中央处理器)、内存、传统数据库和大数据类型的集群等资源。目前的数据库和大数据类型的集群等的客户端没有提供查询当前负载的接口,对于这些类型的资源可以使用全局逻辑资源量来模拟。

比较目标作业的目标逻辑资源量和调度系统剩余的全局逻辑资源量,确定系统剩余的全局逻辑资源是否能够满足目标作业的调度。若目标逻辑资源量小于或等于全局逻辑资源量,则说明调度系统当前满足目标作业的资源调度条件,可以根据预设的机器配置策略,确定目标作业的目标执行机。例如,预先模拟全局逻辑资源量为5,预先模拟目标作业的目标逻辑资源量均为1,在处理目标作业之前,已经处理了两个作业,调度系统剩余的全局逻辑资源量为3,可以满足目标作业的调度,因此可以为目标作业配置目标执行机。

若目标逻辑资源量大于全局逻辑资源量,则说明目标作业当前无法执行,目标作业暂停,继续获取待处理任务队列中的新目标作业进行调度,并将原来的目标作业存放在等待列表中,在预设的等待时间后,重新获取目标作业,再次进行资源量的比较。例如,当前剩余的全局逻辑资源量为1,目标作业的目标逻辑资源量为2,则无法对该目标作业进行资源调度,将该目标作业存放在等待列表中。预设一个存放在等待列表的等待时间,当到达等待时间后,将目标作业从等待列表释放出来,重新比较剩余的全局逻辑资源量和目标逻辑资源量,对目标作业进行资源调度。每执行一个目标作业时,全局逻辑资源量中与目标逻辑资源对应的资源量会被占用,当目标作业处理完毕,全局逻辑资源量中被占用的资源量被归还,因此,在预设等待时间后,目标作业存在可以被执行的可能。在目标作业存放在等待列表时,继续从待处理任务队列中获取作业分值最高的新目标作业进行调度,也要比较新目标作业的目标逻辑资源量和剩余的全局逻辑资源量。这样设置的有益效果在于,在对目标作业进行处理前,先确定全局逻辑资源量是否满足目标作业的要求,若不满足,则直接暂停目标作业的处理,避免在处理之后又发生中断的情形,充分利用资源,节约资源调度时间,提高资源调度效率。

本实施例中,可选的,在比较目标作业的目标逻辑资源量和调度系统剩余的全局逻辑资源量之后,还包括:若目标逻辑资源量小于或等于全局逻辑资源量,则对目标作业进行锁定标识的添加,以避免目标作业被重复调度。

具体的,若目标逻辑资源量小于或等于全局逻辑资源量,则可以对目标作业进行资源调度并进行处理,为避免目标作业被重复处理,给目标作业增加一个锁定标识,用于表明该目标作业正在被执行,可以采用Redis(Remote Dictionary Server)数据库对目标作业进行加锁。例如,可以将锁定标识与目标作业的唯一标识进行关联。当目标作业执行完毕,该目标作业从待处理任务队列移除。这样设置的有益效果在于,若处理目标作业的当前线程对该目标作业加锁成功后,其他线程对该目标作业就会加锁失败,确保多线程在并行处理时不会出错,避免作业的重复处理,提高目标作业的处理效率,减少资源浪费。

本实施例中,可选的,机器配置策略包括如下至少一种:指定机器执行和任意一台机器执行。

具体的,可以预先设置机器配置策略,例如,可以设置对于某目标作业,指定至少一台机器作为目标执行机,也可以不进行针对性的指定,选择任意一台机器作为目标执行机。这样设置的有益效果在于,可以提高目标执行机确定的灵活性,通过指定目标执行机,可以为目标作业分配特定的执行机,避免执行机的资源不满足目标作业的执行要求,提高目标作业的处理效率。

本实施例中,可选的,根据预设的机器配置策略,确定目标作业的目标执行机,包括:根据预先生成的目标作业的唯一标识,从机器配置策略中查找与该唯一标识关联的目标配置策略;根据目标配置策略,确定目标执行机。

具体的,机器配置策略中可以将目标作业的唯一标识与目标配置策略进行关联,在确定目标作业后,读取该目标作业的唯一标识,从机器配置策略中查找与该标识关联的目标配置策略,根据目标配置策略,确定目标执行机。例如,目标作业的唯一标识为001,目标配置策略为001作业的执行机是任意执行机,则从备选的执行机中任意选择目标执行机。又例如,目标配置策略为001作业的执行机指定为一号执行机,则从备选的执行机中选择一号执行机作为目标执行机。这样设置的有益效果在于,通过设置机器配置策略,实现了在对目标作业进行资源调度时,根据预设执行要求进行处理,避免随机选择的执行机不能满足作业的调度要求,减少目标作业执行失败的概率,提高资源调度效率。

本实施例的技术方案,通过获取待处理任务队列中候选作业的作业分值,根据作业分值中的优先级和插入队列的时间信息,从候选作业中确定目标作业,根据预设的机器配置策略,为目标作业配置目标执行机,完成目标作业的资源调度。解决了现有技术中,只根据优先级处理候选作业,造成低优先级作业被饿死的问题,实现对候选作业的及时调度,减少作业等待时间,根据机器配置策略,充分利用机器资源,提高资源调度效率。

实施例二

图2为本发明实施例二所提供的一种资源调度方法的流程示意图,本实施例以上述实施例为基础进行进一步的优化,该方法可以由一种资源调度装置来执行。如图2所示,该方法具体包括如下步骤:

步骤210、获取待处理任务队列的作业分值;其中,作业分值用于表示待处理的候选作业的作业优先级和插入待处理任务队列的时间信息。

其中,获取待处理任务队列中候选作业的作业分值,从作业分值中确定该候选作业插入待处理任务队列的已等待时间。可以根据作业分值中的后十三位数字和预设时间点,确定该候选作业插入待处理任务队列的时间,再根据当前时间,确定该候选作业插入待处理任务队列的已等待时间。

本实施例中,可选的,在获取待处理任务队列的作业分值之后,还包括:根据预设的超时等待时间和作业分值,确定待处理的候选作业是否为超时未处理作业;若是,则提升超时未处理作业的优先级。

具体的,预先设置超时等待时间,将待处理的候选作业的已等待时间与超时等待时间进行比较,若已等待时间超过了超时等待时间,则确定该待处理的候选作业为超时未处理作业。为避免该候选作业被饿死,可以优先处理该候选作业。可以提升该候选作业的优先级,增加作业分值,便于对该候选作业进行优先处理。例如,预设超时等待时间为15分钟,每超过15分钟则增加5个优先级,先确定候选作业等待时间是否超过15分钟,若超过,则增加优先级,得到新的作业分值。可以根据超时未处理作业的作业分值的临界值确定候选作业等待时间是否超时,超时未处理作业的作业分值的临界值为没有超时的未处理作业的最大作业分值。可以通过如下公式计算超时未处理作业的作业分值的临界值:

y=x

其中,y为超时未处理作业的作业分值的临界值,x

z=(x

其中,z为新作业分值,μ为预设的增加优先级的级数。这样设置的有益效果在于,兼顾作业的优先级和等待时间,使得高优的作业尽快得到调度,低优的作业也不会得不到机会调度。自动提升作业的优先级,在资源紧张的情况下,低优作业可能一直得不到机会调度,根据待处理任务队列成员在队列中的等待时间自动提升优先级,能够避免低优作业被饿死,提高对低优作业的资源调度效率。

步骤220、根据作业分值,确定待处理的目标作业。

步骤230、根据预设的机器配置策略,确定目标作业的目标执行机,以完成目标作业的资源调度。

步骤240、向目标执行机发送目标作业,记录发送目标作业的第一时间。

其中,在确定目标执行机后,向目标执行机发送Http(Hyper Text TransferProtocol,超文本传输协议)请求,预设Http连接失败时间阈值,例如,可以设置为5秒,如果调度端发起Http请求在5秒后没有连接上目标执行机,则Http请求失败,重新选择新目标执行机进行尝试。若连接上执行机,则将目标作业发送给目标执行机,并将发送目标作业给目标执行机的时间记录为第一时间。

步骤250、接收目标执行机的反馈信息,记录接收到反馈信息的第二时间。

其中,目标执行机在收到目标作业后,会发出反馈信息,反馈信息可以用于说明是否已经接受到目标作业,可以进行处理。在目标执行机资源充足的情况下,目标执行机会在收到目标作业后迅速发出反馈信息,记录目标执行机发出反馈信息的时间,作为第二时间。在得到反馈信息后,可以解析反馈消息,如果反馈消息中提示目标执行机缺少资源,则重新选择新目标执行机进行尝试。

步骤260、若第一时间和第二时间之间差值小于预设正常差值阈值,则确定目标执行机成功开始执行目标作业。

其中,预设正常差值阈值,例如,可以将正常差值阈值设置为5秒。在得到第一时间和第二时间后,如果反馈消息中提示目标执行机可以正常执行目标作业,则计算第一时间和第二时间的差值。若该差值小于预设正常差值阈值,则说明目标执行机可以正常执行目标作业。待目标执行机执行结束,将目标作业从待处理任务队列中移除。

本实施例中,可选的,在向目标执行机发送目标作业,记录发送目标作业的第一时间之后,还包括:若在预设正常差值阈值的时间内没有接收到目标执行机的反馈信息,则确定目标执行机接收目标作业失败,将目标作业发送给除目标执行机以外的其他执行机。

具体的,若在预设正常差值阈值的时间内没有接收到目标执行机的反馈信息,则确定目标执行机接收目标作业失败,选择新目标执行机处理目标作业,目标执行机自动放弃目标作业,不会再发出该目标作业的反馈信息。这样设置的有益效果在于,在目标执行机无法执行目标作业时,可以自动将目标作业转移给新目标执行机,减少原目标执行机反馈信息的传递,提高作业处理效率,充分利用执行机的资源,提高资源调度效率。

本实施例中,可选的,在根据预设的机器配置策略,确定目标作业的目标执行机之后,还包括:若目标作业在资源调度过程中发生异常,则对目标作业的作业分值进行调整,得到异常分值;将异常分值存放在异常任务队列中,在超过预设重试等待时间后,对目标作业进行重新调度。

具体的,若目标作业在调度或处理过程中发生异常,则该目标作业无法继续被执行。例如,所有备选的执行机都无法执行目标作业,则确定该目标任务为异常作业,可以将该异常作业放入异常任务队列中。在放入异常任务队列之前,可以对异常作业的作业分值进行调整,得到异常分值。例如,可以将插入待处理任务队列的时间信息修改为插入异常任务队列的时间信息。预设一个重试等待时间,若异常作业在异常任务队列中的存放时间超过重试等待时间,则将异常作业从异常任务队列中移除,并存放在待处理任务队列中进行重新调度。例如,预设重试等待时间可以是15分钟。这样设置的有效果在于,若目标作业出现异常,则将目标任务进行预设重试等待时间的等待,使资源出现空闲时再重新进行该目标作业的资源调度,存放在异常任务队列中可以避免任务丢失,根据异常分值,可以确定异常作业的等待时间,避免异常作业等待时间过久,有效提升资源调度效率。

本实施例中,可选的,异常分值为含有16位数值的字符串,其中,第一位是-1,第二位至第十四位数值表示目标作业插入异常任务队列的时间信息,第十五至第十六位数值表示作业优先级。

具体的,异常分值与作业分值不同,作业分值为15位数值的字符串,异常分值为16为数值的字符串,且异常分值中优先级数值与时间信息数值的位置与作业分值不同。异常分值中的第一位数值为固定值-1,后两位数值为预设的作业优先级,中间十三位数值为目标作业也就是异常作业插入异常任务队列的时间信息,可以根据插入时间和预设时间点计算时间信息,时间信息越大,插入时间越早。根据异常分值临界值和异常分值可以计算异常作业的等待时间是否超过预设重试等待时间,异常分值临界值为没有超过预设重试等待时间的异常作业的最小异常分值。可以通过如下公式确定异常分值临界值:

其中,g为异常分值临界值,

本发明实施例通过获取待处理任务队列中候选作业的作业分值,根据作业分值中的优先级和插入队列的时间信息,从候选作业中确定目标作业,根据预设的机器配置策略,为目标作业配置目标执行机,并在目标执行机无法执行目标作业时,及时将目标作业进行转移,完成目标作业的资源调度。解决了现有技术中,只根据优先级处理候选作业,造成低优先级作业被饿死的问题,实现对候选作业的及时调度,减少作业等待时间,根据机器配置策略,充分利用目标执行机的资源,减少资源调度的等待时间,提高资源调度效率。

实施例三

图3为本发明实施例三所提供的一种资源调度装置的结构框图,可执行本发明任意实施例所提供的一种资源调度方法,具备执行方法相应的功能模块和有益效果。如图3所示,该装置具体包括:

分值获取模块301,用于获取待处理任务队列的作业分值;其中,作业分值用于表示待处理的候选作业的作业优先级和插入待处理任务队列的时间信息;

作业确定模块302,用于根据作业分值,确定待处理的目标作业;

执行机确定模块303,用于根据预设的机器配置策略,确定目标作业的目标执行机,以完成目标作业的资源调度。

可选的,作业分值为含有15位数值的字符串,其中,第一位和第二位数值表示作业优先级,第三位至第十五位数值表示候选作业插入待处理任务队列的时间信息。

可选的,分值获取模块301,包括:

时间差值确定单元,用于根据预设时间点,确定候选作业插入待处理任务队列的时间与预设时间点之间的时间差值;

作业分值生成单元,用于根据预设的作业优先级和时间差值,生成待处理任务队列中候选作业的作业分值。

可选的,作业确定模块302,具体用于:

根据作业分值的数值大小,对待处理任务队列中的候选作业进行排序;

将排序结果符合预设要求的候选作业,确定为目标作业。

可选的,该装置还包括:

资源量比较模块,用于在根据预设的机器配置策略,确定目标作业的目标执行机之前,比较目标作业的目标逻辑资源量和调度系统剩余的全局逻辑资源量;

目标存放模块,用于若目标逻辑资源量大于全局逻辑资源量,则继续获取待处理任务队列中的新目标作业进行调度,并将目标作业存放在等待列表中,在预设的等待时间后,重新获取目标作业;

目标执行模块,用于若目标逻辑资源量小于或等于全局逻辑资源量,则根据预设的机器配置策略,确定目标作业的目标执行机。

可选的,该装置还包括:

目标锁定模块,用于在比较目标作业的目标逻辑资源量和调度系统剩余的全局逻辑资源量之后,若目标逻辑资源量小于或等于全局逻辑资源量,则对目标作业进行锁定标识的添加,以避免目标作业被重复调度。

可选的,机器配置策略包括如下至少一种:指定机器执行和任意一台机器执行。

可选的,执行机确定模块303,具体用于:

根据预先生成的目标作业的唯一标识,从机器配置策略中查找与标识关联的目标配置策略;

根据目标配置策略,确定目标执行机。

可选的,该装置还包括:

第一时间记录模块,用于向目标执行机发送目标作业,记录发送目标作业的第一时间;

第二时间记录模块,用于接收目标执行机的反馈信息,记录接收到反馈信息的第二时间;

作业执行模块,用于若第一时间和第二时间之间差值小于预设正常差值阈值,则确定目标执行机成功开始执行目标作业。

可选的,该装置还包括:

作业重新发送模块,用于若在预设正常差值阈值的时间内没有接收到目标执行机的反馈信息,则确定目标执行机接收目标作业失败,将目标作业发送给除目标执行机以外的其他执行机。

可选的,该装置还包括:

异常分值确定模块,用于在根据预设的机器配置策略,确定目标作业的目标执行机之后,若目标作业在资源调度过程中发生异常,则对目标作业的作业分值进行调整,得到异常分值;

目标重新调度模块,用于将异常分值存放在异常任务队列中,在超过预设重试等待时间后,对目标作业进行重新调度。

可选的,异常分值为含有16位数值的字符串,其中,第一位是-1,第二位至第十四位数值表示目标作业插入异常任务队列的时间信息,第十五至第十六位数值表示作业优先级。

可选的,该装置还包括:

超时确定模块,用于根据预设的超时等待时间和作业分值,确定待处理的候选作业是否为超时未处理作业;

优先级提升模块,用于若是,则提升超时未处理作业的优先级。

本发明实施例通过获取待处理任务队列中候选作业的作业分值,根据作业分值中的优先级和插入队列的时间信息,从候选作业中确定目标作业,根据预设的机器配置策略,为目标作业配置目标执行机,完成目标作业的资源调度。解决了现有技术中,只根据优先级处理候选作业,造成低优先级作业被饿死的问题,实现对候选作业的及时调度,减少作业等待时间,根据机器配置策略,充分利用机器资源,提高资源调度效率。

实施例四

图4是本发明实施例四提供的一种计算机设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备400的框图。图4显示的计算机设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,计算机设备400以通用计算设备的形式表现。计算机设备400的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。

总线403表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

计算机设备400典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备400访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)404和/或高速缓存存储器405。计算机设备400可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统406可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。存储器402可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块407的程序/实用工具408,可以存储在例如存储器402中,这样的程序模块407包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块407通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备400也可以与一个或多个外部设备409(例如键盘、指向设备、显示器410等)通信,还可与一个或者多个使得用户能与该计算机设备400交互的设备通信,和/或与使得该计算机设备400能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口411进行。并且,计算机设备400还可以通过网络适配器412与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器412通过总线403与计算机设备400的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理单元401通过运行存储在系统存储器402中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种资源调度方法,包括:

获取待处理任务队列的作业分值;其中,作业分值用于表示待处理的候选作业的作业优先级和插入待处理任务队列的时间信息;

根据作业分值,确定待处理的目标作业;

根据预设的机器配置策略,确定目标作业的目标执行机,以完成目标作业的资源调度。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的一种资源调度方法,包括:

获取待处理任务队列的作业分值;其中,作业分值用于表示待处理的候选作业的作业优先级和插入待处理任务队列的时间信息;

根据作业分值,确定待处理的目标作业;

根据预设的机器配置策略,确定目标作业的目标执行机,以完成目标作业的资源调度。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 资源调度方法、资源调度装置、电子设备和可读存储介质
  • 资源调度方法、装置、设备、终端设备、基站及存储介质
技术分类

06120112166139