CN110716796B - 智能任务调度方法及装置、存储介质、电子设备 - Google Patents

智能任务调度方法及装置、存储介质、电子设备 Download PDF

Info

Publication number
CN110716796B
CN110716796B CN201910822774.5A CN201910822774A CN110716796B CN 110716796 B CN110716796 B CN 110716796B CN 201910822774 A CN201910822774 A CN 201910822774A CN 110716796 B CN110716796 B CN 110716796B
Authority
CN
China
Prior art keywords
task
server
target
information
tuned
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.)
Active
Application number
CN201910822774.5A
Other languages
English (en)
Other versions
CN110716796A (zh
Inventor
林勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN201910822774.5A priority Critical patent/CN110716796B/zh
Publication of CN110716796A publication Critical patent/CN110716796A/zh
Application granted granted Critical
Publication of CN110716796B publication Critical patent/CN110716796B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开一种智能任务调度方法及装置、存储介质、电子设备,属于信息处理技术领域,该方法包括:获取节点上目标任务信息和服务器集群中服务器数量值;基于所述目标任务信息确定与所述目标任务对应的第一散列值,通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值;根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器;将所述目标任务调度到所述服务器集群中确定的所述目标服务器。该方法解决了服务器任务分配不均匀的问题,提高了服务器资源的利用率和任务处理速度。

Description

智能任务调度方法及装置、存储介质、电子设备
技术领域
本公开涉及信息处理技术领域,具体而言,涉及一种智能任务调度方法及装置、存储介质、电子设备。
背景技术
随着互联网的发展,需要处理的任务数量越来越多,越来越复杂,另外用户对任务处理的要求也越来越高。一方面,单一主机或服务器难以高效快速的处理任务。另外一方面,大量的服务器资源处于闲置状态。因此将任务调度分配到其他服务器,服务器协同处理任务,达到提高任务处理效率、提高服务器利用率的目的。
相关技术中,通过将任务注册到所有的服务器,通过分布式锁控制只有一个实例在运行的方法解决上述问题,这种方法导致服务器被分配的任务不均衡,可能出现某台服务器比较忙,某台服务器比较闲,造成服务器资源的浪费。
因此,需要提供一种新的智能任务调度方法及装置。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为解决相关技术中存在的服务器在被分配任务过程中被分配到的任务不均衡导致服务器资源闲置的问题,本公开提供了一种智能任务调度方法、智能任务调度装置、计算机可读存储介质以及电子设备。
根据本公开的一个方面,提供一种智能任务调度方法,包括:
获取节点上目标任务信息和服务器集群中服务器数量值;基于所述目标任务信息确定与所述目标任务对应的第一散列值,通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值;根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器;将所述目标任务调度到所述服务器集群中确定的所述目标服务器。
在本公开的一种示例性实施例中,所述获取节点上目标任务信息和服务器集群中服务器数量值,包括:
获取节点上所有的或部分的等待被调度的待调任务信息,所述待调任务信息包括待调任务等级;基于所述待调任务等级,将所有所述待调任务按照所述待调任务等级从高到低进行排序,将所述排序存放在排序列表中;依次选取所述排序列表中所述待调任务等级最高的所述待调任务为所述目标任务,获取所述目标任务信息。
在本公开的一种示例性实施例中,所述将所有所述待调任务按照所述待调任务等级从高到低进行排序,将所述排序存放在排序列表中,包括:
获取节点上所有的或部分的等待被调度的待调任务信息,所述待调任务信息还包括待调任务标识符;如果有任意两个或两个以上的所述待调任务的所述待调任务等级相同,则在所述待调任务等级相同的所述待调任务中,根据所述待调任务标识符分别确定与所述待调任务对应的第二散列值;比较所述待调任务等级相同的各所述待调任务的所述第二散列值的大小,将所述待调任务等级相同的所述待调任务按照第二散列值从大到小进行排序,将所述排序存放在排序列表中。
在本公开的一种示例性实施例中,基于所述目标任务信息确定与所述目标任务对应的第一散列值,通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值,包括:
调取预存的散列函数;选定所述目标任务信息中的一种作为主要标识符,将所述主要标识符输入所述散列函数,输出所述第一散列值;调取预存的取余函数;将所述第一散列值作为被除数,将所述服务器数量值作为除数,输入所述取余函数,得到与所述目标任务对应的余数值。
在本公开的一种示例性实施例中,根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器,包括;
预先给服务器集群中每个节点上的服务器分配服务器编号;预存所述余数值与所述服务器编号的一一映射关系表;查找所述余数值与所述服务器编号的一一映射关系表,确定与所述余数值相对应的服务器编号对应的服务器为目标服务器。
在本公开的一种示例性实施例中,所述预先给服务器集群中每个节点上的服务器分配服务器编号,包括:
基于所述服务器地址信息给所述服务器编号。
根据本公开的一个方面,提供一种智能任务调度装置,包括:
获取模块,用于获取节点上目标任务信息和服务器集群中服务器数量值;计算模块,用于基于所述目标任务信息确定与所述目标任务对应的第一散列值,通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值;确定模块,用于根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器;调度模块,用于将所述目标任务调度到所述服务器集群中确定的所述目标服务器。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的智能任务调度方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为:经由执行所述可执行指令来执行上述任意一项所述的智能任务调度方法。
本公开的实施方式提供的技术方案可以带来以下有益效果:
散列函数具有一个性质:输入域上的值经过函数值映射后会几乎均等的分布在输出域上。本申请实施例通过获取节点上的目标任务信息确定与目标任务对应的第一散列值,通过第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值,由于上述性质,按照这个余数值确定目标服务器,每个服务器具有基本均匀的被选择作为目标服务器的机会,解决了现有技术中由于服务器被分配任务的不均衡,导致的服务器资源浪费及任务处理效率低的问题。提高了服务器使用的均衡性,避免了服务器资源的浪费,同时提高了处理任务效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出一种实施方式智能任务调度方法的流程图;
图2示意性示出图1中步骤S110在一种实施方式中的流程图;
图3示意性示出图2中步骤S220在一种实施方式中的流程图;
图4示意性示出图1中步骤S110在一种实施方式中的流程图;
图5示意性示出图1中步骤S120在一种实施方式中的流程图;
图6示意性示出图1中步骤S130在一种实施方式中的流程图;
图7示意性示出一种用于实现上述智能任务调度方法的智能任务调度装置图;
图8示意性示出一种用于实现上述智能任务调度方法的电子设备示例框图;
图9示意性示出一种用于存储上述智能任务调度方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述本公开的示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例性实施方式使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、模块、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
根据本公开的一个方面,提供了一种智能任务调度方法。在本公开的示例性实施方式中,该智能任务调度方法可以运行于终端、服务器,也可以运行于服务器集群或云服务器等,当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施方式中对此不做特殊限定。
请参考图1所示,该智能任务调度方法可以包括以下步骤:
步骤S110.获取节点上目标任务信息和服务器集群中服务器数量值。
步骤S120.基于所述目标任务信息确定与所述目标任务对应的第一散列值,通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值。
步骤S130.根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器。
步骤S140.将所述目标任务调度到所述服务器集群中确定的所述目标服务器。
上述智能任务调度方法中,基于目标任务信息确定与目标任务对应的第一散列值,通过第一散列值与服务器数量值的取余算法,得到与目标任务对应的余数值,根据与目标任务对应的余数值,在服务器集群中确定目标服务器,将目标任务调度到目标服务器,进而将任务均匀的分配到服务器中,避免了服务器资源的浪费,同时提高了处理任务的效率。
下面,将结合附图对本示例性实施方式中上述智能任务调度方法中的各步骤进行详细的解释以及说明。
在步骤S110中,获取节点上目标任务信息和服务器集群中服务器数量值。
在本步骤中,节点是指网络中拥有自己唯一网络地址的设备,比如工作站、服务器、个人计算机、手机、打印机或其他网络连接的设备。获取节点上目标任务信息,目标任务信息是指需要被调度分配到服务器进行处理的目标任务的信息。节点上目标任务可以是连接到网络中的工作站、服务器、个人计算机、手机、打印机或其他网络连接的设备上的任务。节点及节点上的目标任务可以包括一个,也可以包括多个,本示例对此不做特殊限制;服务器集群中服务器数量值,可以是服务器集群中所有的服务器数量值,也可以是服务器集群中部分的服务器数量值,在本示例性实施方式中是指服务器集群中空闲着的或有大量闲置处理资源的服务器数量值。
在本示例性实施方式中,在步骤S110中,获取节点上目标任务信息可以包括步骤S210——步骤S230。请参考图2所示,其中:
在步骤S210中,获取节点上所有的或部分的等待被调度的待调任务信息,所述待调任务信息包括待调任务等级。
在步骤S220中,基于所述待调任务等级,将所有所述待调任务按照所述待调任务等级从高到低进行排序,将所述排序存放在排序列表中。
在步骤S230中,依次选取所述排序列表中所述待调任务等级最高的所述待调任务为所述目标任务,获取所述目标任务信息。
在此示例性实施方式中,由于根据待调任务等级排序,达到了考虑待调任务的重要性,优先处理重要待调任务的有益效果。
下面,对步骤S210、步骤S220、步骤S230进行详细的解释以及说明。待调任务是指节点上等待被调度分配到服务器进行处理同时还没有确定为目标任务的任务。待调任务还没有被确定为目标任务,因此需要将待调任务确定为目标任务并调度分配到服务器集群中的各个服务器上进行处理。首先,获取节点上所有等待被调度分配到服务器进行处理的待调任务信息,待调任务信息包括有待调任务等级,待调任务等级表示待调任务的重要程度或者优先处理程度,用于判断对调度任务进行调度的先后顺序,重要程度高或者需要急切处理的任务较先被调度到合适的服务器中进行处理。待调任务等级可以用字母表示(例如:A、B、C、D),也可以用数字、序号、编码表示(例如:一级、二级、三级、四级),在此不做限制。其次,根据待调任务等级的高低对待调任务进行排序,使得待调任务等级高的排在待调等级任务低的前面,并将排序结果存储在排序列表中。然后,从排序列表中寻找排序在最前面的(即排序列表中待调任务等级最高的)待调任务,将该待调任务设为目标任务,并获取目标任务信息。
例如:请参考表1所示,待调任务1的待调任务等级是四级、待调任务2的待调任务等级是二级、待调任务3的待调任务等级是一级、待调任务4的待调任务等级是三级,则在排序列表中,从上往下的排序依次为待调任务3、待调任务2、待调任务4、待调任务1。将最上面的待调任务3设为目标任务,然后获取目标任务信息。目标任务信息可以是目标任务的名称、所属类的类名、ID号、等级,还可以是目标任务的内容数据、目标任务进程量、服务器处理目标任务需要的内存量、所需处理器资源量等。
待调任务 待调任务等级
待调任务3 一级
待调任务2 二级
待调任务4 三级
待调任务1 四级
表1
在上述实施方式的进一步优化实施方式中,具体地在步骤S220中,基于所述待调任务等级,将所有所述待调任务按照所述待调任务等级从高到低进行排序,将所述排序存放在排序列表中还可以包括步骤310——步骤S330。请参考图3所示,其中:
在步骤S310中,获取节点上所有的或部分的等待被调度的待调任务信息,所述待调任务信息还包括待调任务标识符。
在步骤S320中,如果有任意两个或两个以上的所述待调任务的所述待调任务等级相同,则在所述待调任务等级相同的所述待调任务中,根据所述待调任务标识符分别确定与所述待调任务对应的第二散列值。
在步骤S330中,比较所述待调任务等级相同的各所述待调任务的所述第二散列值的大小,将所述待调任务等级相同的所述待调任务按照第二散列值从大到小进行排序,将所述排序存放在排序列表中。
在此示例性实施方式中,基于待调任务等级排序,当待调任务等级相同时,根据第二散列值进行排序,第二散列函数具有一个性质:输入域上的值经过函数值映射后会几乎均等的分布在输出域上。因此达到了使得待调任务等级相同的待调任务被公平均衡的调度到目标服务器的有益效果。
下面,对步骤S310、步骤S320、步骤S330进行详细的解释以及说明。首先,获取节点上的待调任务信息,可以是节点上所有的等待被调度的待调任务,也可以是节点上部分的等待被调度的待调任务。所述待调任务信息包括标识符,标识符可以是待调任务名称、ID号等。其次,在将待调任务按照待调任务等级存放在排序列表之前,检测是否存在两个或两个以上的待调任务等级相同的待调任务,如果检测到存在任意两个或两个以上的待调任务的待调任务等级相同,则需要提供另外一个准则对这些待调任务进行排序。在此优化实施方式中,将待调任务名称或者其他能区分待调任务等级相同的不同待调任务的标识符,分别输入到第二散列函数中,得到与每个待调任务一一对应的第二散列值。由于散列值具有随机性,因此对这些待调任务等级相同的待调任务基于散列值进行排序也具有随机性,从而使得任务调度更公平均衡。然后,比较待调任务等级相同的与各待调任务相对应的第二散列值间的大小,将待调任务等级相同的待调任务按照第二散列值从大到小进行排序,将所述排序存放在排序列表中。
例如,请参考表2所示,在将待调任务按照待调任务等级进行排序前,检测到标识符为“翻译B”的待调任务、标识符为“识别A”的待调任务、标识符为“查询C”的待调任务的待调任务等级都是一级,此时通过散列函数算法,得到标识符为“翻译B”的待调任务的散列值是4、标识符为“识别A”的待调任务的散列值是3、标识符为“查询C”的待调任务的散列值是2,因此基于散列值的大小将散列值是4的标识符为“翻译B”的待调任务排列在最前面,其次是散列值是3的标识符为“识别A”的待调任务,再后面是散列值是2的标识符为“查询C”的待调任务。再之后是待调任务等级为二级和三级的待调任务。
待调任务标识符 待调任务等级 散列值
翻译B 一级 4
识别A 一级 3
查询C 一级 2
翻译D 二级 4
下载E 三级 5
表2
在本示例性实施方式中,在步骤S110中,获取节点上的服务器集群中服务器数量值可以包括步骤S410——步骤S440。请参考图4所示,其中:
在步骤S410中,获取所述节点上各个服务器的状态信息。
在步骤S420中,从所述目标任务信息中提取目标任务的需求信息。
在步骤S430中,对所述目标任务的需求信息与所述服务器的状态信息进行匹配。
在步骤S440中,将所述服务器的状态信息与所述目标任务的需求信息相匹配的服务器计入所述服务器数量值。
在本示例性实施方式中,对服务器进行筛选,从能够满足目标任务处理条件的服务中确定目标服务器,达到提升服务器处理任务的效率的有益效果。
下面,对步骤S410、步骤S420、步骤S430及步骤S440进行详细的解释以及说明。首先,获取节点上各个服务器的状态信息。例如可以是服务器各个存储单元的存储状态信息、处理器的占用状态和空置状态信息、正在运行的任务或进程信息等。从目标任务信息中提取目标任务的需求信息,可以是与服务器状态信息对应的信息。例如与服务器存储状态信息对应的目标任务所需要占用存储器的存储量信息(即目标任务的大小信息),与服务器处理器占用状态或空置状态信息对应的处理目标任务所需要的处理器资源信息等。然后,对目标任务的需求信息与服务器的状态信息进行匹配。例如计算服务器空置的存储资源是否可以容置下目标任务,及计算服务器的处理器资源是否能够处理目标任务。在一优化地实施方式中,计算服务器集群中各个服务器处理目标任务所需要的时间或效率。将服务器的状态信息与目标任务的需求信息相匹配的服务器计入所述服务器数量值。此时,与目标任务的需求信息相匹配的服务器都能够对目标任务进行处理,使得后续步骤中,将目标任务随机的分配到这些服务器中,而不会造成服务器因储存器资源或处理资器源不够而无法处理目标任务的情况。在一优化地实施方式中,将各个服务器处理目标任务所需要的时间或效率满足预定阈值的服务器计入服务器数量值。此时,满足预定阈值条件的服务器都能够更快速的对目标任务进行处理,使得在后续步骤中,将目标任务随机的分配到这些服务器中进行处理时,能够提升服务器处理目标任务的效率。
在步骤S120中,基于所述目标任务信息确定与所述目标任务对应的第一散列值,通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值。
在本步骤中,基于步骤S110获取得到目标任务信息,目标任务信息可以是目标任务名称、目标任务ID号或者目标任务的其他标识符。通过第一散列函数,计算与该目标任务对应的第一散列值。进一步,通过取余算法,获取第一散列值与服务器数量值相除后得到的余数值,得到与所述目标任务对应的余数值,该余数值同时也与服务器数量值相对应。
在本示例性实施方式中,在步骤S120中,从目标任务信息中确定一标识符输入第一散列函数,得到与所述目标任务对应的第一散列值。通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值可以包括步骤S510——步骤S540。参考图5所示,其中:
在步骤S510中,调取预存的第一散列函数。
在步骤S520中,选定所述目标任务信息中的一种作为主要标识符,将所述主要标识符输入所述第一散列函数,输出所述第一散列值。
在步骤S530中,调取预存的取余函数。
在步骤S540中,将所述第一散列值作为被除数,将所述服务器数量值作为除数,输入所述取余函数,得到与所述目标任务对应的余数值。
在本示例性实施方式中,由于第一散列函数具有一个性质:输入域上的值经过函数值映射后会几乎均等的分布在输出域上。因此通过获取节点上的目标任务的主要标识符确定与目标任务对应的第一散列值,通过第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值,按照这个余数值确定目标服务器,每个服务器具有基本均匀的被选择作为目标服务器的机会。
下面,对步骤S510、步骤S520、步骤S530及步骤S540进行详细的解释以及说明。在终端或服务器上预存有第一散列函数及取余函数。首先,调取第一散列函数到处理器中。选定目标任务信息中的一种作为主要标识符(例如:选取目标任务名称、目标任务ID号等作为主要标识符),将主要标识符输入第一散列函数,输出得到第一散列值。再其次,调取预存的取余函数到处理器中。然后,将第一散列值作为被除数,将服务器数量值作为除数,输入所述取余函数,得到与该目标任务对应的余数值。此示例性实施方式中的服务器数量值为服务器的状态信息与目标任务的需求信息相匹配的服务器的服务器数量值。在优化的实施方式中,服务器数量值为处理目标任务所需要的时间或效率能够满足预定阈值条件的服务器的服务器数量值。由于经过第一散列函数映射得到的第一散列值具有随机均匀性,为随机均匀的分配任务给服务器提供了依据。而由第一散列值与服务器数量值的取余算法,得到的余数值则和服务器的数量值一一对应,进而为将目标任务一一对应地分配给服务器提供了依据。
例如:有目标任务1、目标任务2、目标任务3需要执行,目标任务1的标识符为“翻译A”、目标任务2的标识符为“识别B”、目标任务3的标识符为“运行C”,则将目标任务1的标识符“翻译A”输入第一散列函数,得到一个与目标任务1对应的随机第一散列值m,将目标任务2的标识符“识别B”输入第一散列函数,得到一个与目标任务2对应的随机的第一散列值n,将目标任务3的标识符“运行C”输入第一散列函数,得到一个与目标任务3对应的随机第一散列值u。然后将m、n、u作为被除数分别输入除数为k(k为满足预定阈值条件的服务器的服务器数量值)的取余算法进行取余计算,得到的余数值与目标任务一一对应。由于该余数是基于随机的第一散列值得到的,因此该余数也是随机的数值,因此就可以将目标任务基于对应的余数值随机的分配到满足阈值条件的服务器中。
在步骤S130中,根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器。
在示例性本实施方式中,在步骤S130中,根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器可以包括步骤S610——S630。请参考图6所示,其中:
在步骤S610中,预先给节点上的服务器分配服务器编号。
在步骤S620中,预存所述余数值与所述服务器编号的一一映射关系表。
在步骤S630中,查找所述余数值与所述服务器编号的一一映射关系表,确定与所述余数值相对应的服务器编号对应的服务器为目标服务器。
下面,对步骤S610、步骤S620、步骤S630进行详细的解释以及说明。首先,预先给服节点上的服务器的状态信息与目标任务的需求信息相匹配的服务器分配服务器编号,该服务器编号与服务器一一对应。在一优选实施方式中,根据服务器地址信息给该服务器建立一一对应的服务器编号,由于服务器地址具有唯一性,因此服务器编号也具有唯一性。其次,将服务器编号与余数值建立一一对应关系,并将服务器编号与余数值建立的一一对应关系预存在余数值与所述服务器编号的一一映射关系表中。然后,通过查找步骤S620预存的余数值与服务器编号的一一映射关系表,确定与余数值对应的服务器编号所代表的服务器为目标服务器。
例如:服务器的状态信息与目标任务的需求信息相匹配的服务器的服务器数量为5个(即k=5),分别预先编号为1——5。通过第一散列函数计算后得知,目标任务1的第一散列值m=34。通过取余函数计算:34/5=6……4,则将目标任务1分配到编号为4的服务器;目标任务2的第一散列值n=28,通过取余函数计算:28/5=5……3,则将目标任务2分配到标号为3的服务器;目标任务3的第一散列值u=51,通过取余函数计算:51/5=10……1,则将目标任务3分配到编号为1的服务器。
在步骤S140中,将所述目标任务调度到所述服务器集群中确定的所述目标服务器。
目标任务所在的节点与目标服务器所在的节点通过网络相互连接,网络可以是有线网络(例如:同轴电缆网、双绞线网、光纤网)、也可以是无线网络,可以是个人网、局域网(LAN)、城域网(MAN)或广域网(WAN),可以是客户机/服务器网络或对等网等能够达成节点之间通讯功能的任意形态的网络。目标任务通过网络传递到目标服务器中。
根据本公开的一个方面,提供了一种智能任务调度装置。在本公开的示例性实施方式中,该智能任务调度装置可以包括获取模块710、计算模块720、确定模块730以及调度模块740。请参考图7所示,其中:
获取模块710,用于获取节点上目标任务信息和服务器集群中服务器数量值。
计算模块720,用于基于所述目标任务信息确定与所述目标任务对应的第一散列值,通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值。
确定模块730,用于根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器。
调度模块740,用于将所述目标任务调度到所述服务器集群中确定的所述目标服务器。
上述智能任务调度装置中各模块的具体细节已经在对应的智能任务调度方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例性实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的一个方面,提供了一种能够实现上述智能任务调度方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
请参考图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元820存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书中描述的根据本发明各种示例性实施方式的步骤。
例如,所述处理单元810可以执行如图1中所示的步骤S110.获取节点上目标任务信息和服务器集群中服务器数量值;步骤S120.基于所述目标任务信息确定与所述目标任务对应的第一散列值,通过所述第一散列值与所述服务器数量值的取余算法,得到与所述目标任务对应的余数值;步骤S130.根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器;步骤S140.将所述目标任务调度到所述服务器集群中确定的所述目标服务器。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如打印机、键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口840进行。并且,电子设备800还可以通过网络适配器850与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器850通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例性实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的一个方面,在本公开的示例性实施方式中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上的根据本发明各种示例性实施方式的步骤。
参考图9所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品1000,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (6)

1.一种智能任务调度方法,其特征在于,包括:
获取节点上所有的或部分的等待被调度的待调任务信息,所述待调任务信息包括待调任务等级;
获取节点上所有的或部分的等待被调度的待调任务信息,所述待调任务信息还包括待调任务标识符;
如果有任意两个或两个以上的所述待调任务的所述待调任务等级相同,则在所述待调任务等级相同的所述待调任务中,根据所述待调任务标识符分别确定与所述待调任务对应的第二散列值;
比较所述待调任务等级相同的各所述待调任务的所述第二散列值的大小,将所述待调任务等级相同的所述待调任务按照第二散列值从大到小进行排序,将所述排序存放在排序列表中;
依次选取所述排序列表中所述待调任务等级最高的所述待调任务为目标任务,获取所述目标任务信息;
获取节点上各个服务器的状态信息,所述状态信息包括存储状态信息、占用状态和空置状态信息、正在运行的任务或进程信息;
从目标任务信息中提取目标任务的需求信息;
对所述目标任务的需求信息与所述服务器的状态信息进行匹配;
将所述服务器的状态信息与所述目标任务的需求信息相匹配的服务器计入所述服务器数量值;
调取预存的第一散列函数;
选定所述目标任务信息中的一种作为主要标识符,将所述主要标识符输入所述第一散列函数,输出第一散列值;
调取预存的取余函数;
将所述第一散列值作为被除数,将所述服务器数量值作为除数,输入所述取余函数,得到与所述目标任务对应的余数值;
根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器;
将所述目标任务调度到所述服务器集群中确定的所述目标服务器。
2.根据权利要求1所述的智能任务调度方法,其特征在于,根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器,包括:
预先给服务器集群中每个节点上的服务器分配服务器编号;
预存所述余数值与所述服务器编号的一一映射关系表;
查找所述余数值与所述服务器编号的一一映射关系表,确定与所述余数值相对应的服务器编号对应的服务器为目标服务器。
3.根据权利要求2所述的智能任务调度方法,其特征在于,所述预先给服务器集群中每个节点上的服务器分配服务器编号,包括:
基于所述服务器地址信息给所述服务器编号。
4.一种智能任务调度装置,其特征在于,包括:
获取模块,用于:
获取节点上所有的或部分的等待被调度的待调任务信息,所述待调任务信息包括待调任务等级;
获取节点上所有的或部分的等待被调度的待调任务信息,所述待调任务信息还包括待调任务标识符;
如果有任意两个或两个以上的所述待调任务的所述待调任务等级相同,则在所述待调任务等级相同的所述待调任务中,根据所述待调任务标识符分别确定与所述待调任务对应的第二散列值;
比较所述待调任务等级相同的各所述待调任务的所述第二散列值的大小,将所述待调任务等级相同的所述待调任务按照第二散列值从大到小进行排序,将所述排序存放在排序列表中;
依次选取所述排序列表中所述待调任务等级最高的所述待调任务为目标任务,获取所述目标任务信息;
计算模块,用于:
调取预存的第一散列函数;
选定所述目标任务信息中的一种作为主要标识符,将所述主要标识符输入所述第一散列函数,输出第一散列值;
调取预存的取余函数;
将所述第一散列值作为被除数,将服务器数量值作为除数,输入所述取余函数,得到与所述目标任务对应的余数值;
确定模块,用于根据与所述目标任务对应的余数值,在所述服务器集群中确定目标服务器;
调度模块,用于将所述目标任务调度到所述服务器集群中确定的所述目标服务器;
其中,获取模块包括:
获取节点上各个服务器的状态信息,所述状态信息包括存储状态信息、占用状态和空置状态信息、正在运行的任务或进程信息;
从目标任务信息中提取目标任务的需求信息;
对所述目标任务的需求信息与所述服务器的状态信息进行匹配;
将所述服务器的状态信息与所述目标任务的需求信息相匹配的服务器计入所述服务器数量值。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-3任一项所述的智能任务调度方法。
6.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-3任一项所述的智能任务调度方法。
CN201910822774.5A 2019-09-02 2019-09-02 智能任务调度方法及装置、存储介质、电子设备 Active CN110716796B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910822774.5A CN110716796B (zh) 2019-09-02 2019-09-02 智能任务调度方法及装置、存储介质、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910822774.5A CN110716796B (zh) 2019-09-02 2019-09-02 智能任务调度方法及装置、存储介质、电子设备

Publications (2)

Publication Number Publication Date
CN110716796A CN110716796A (zh) 2020-01-21
CN110716796B true CN110716796B (zh) 2024-05-28

Family

ID=69209660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910822774.5A Active CN110716796B (zh) 2019-09-02 2019-09-02 智能任务调度方法及装置、存储介质、电子设备

Country Status (1)

Country Link
CN (1) CN110716796B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377551A (zh) * 2020-03-10 2021-09-10 北京京东乾石科技有限公司 无人车任务的分配方法、装置、电子设备及存储介质
CN112099958B (zh) * 2020-11-17 2021-03-02 深圳壹账通智能科技有限公司 分布式多任务管理方法、装置、计算机设备及存储介质
CN112685182A (zh) * 2020-12-29 2021-04-20 平安普惠企业管理有限公司 业务数据处理方法、装置、计算机设备及存储介质
CN113806034B (zh) * 2021-01-06 2024-09-20 北京沃东天骏信息技术有限公司 任务执行方法及装置、计算机可读存储介质和电子设备
CN113064720B (zh) * 2021-03-12 2024-04-16 北京达佳互联信息技术有限公司 对象分配方法、装置、服务器及存储介质
CN112905128B (zh) * 2021-03-31 2023-08-01 浙江大华技术股份有限公司 门禁用户数据的管理方法和装置、存储介质及电子设备
CN113423075A (zh) * 2021-05-18 2021-09-21 北京达佳互联信息技术有限公司 短信发送的控制方法、装置、电子设备、存储介质及产品
CN115296958B (zh) * 2022-06-28 2024-03-22 青岛海尔科技有限公司 设备控制任务的分发方法、装置、存储介质及电子装置
CN116273692B (zh) * 2023-03-14 2023-08-15 深圳徕科技术有限公司 分布式高速喷射阀联合控制方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395353A (zh) * 2017-04-24 2017-11-24 阿里巴巴集团控股有限公司 一种区块链共识方法及装置
CN107800768A (zh) * 2017-09-13 2018-03-13 平安科技(深圳)有限公司 开放平台控制方法和系统
CN108132830A (zh) * 2016-12-01 2018-06-08 北京金山云网络技术有限公司 一种任务调度方法、装置及系统
CN109669775A (zh) * 2018-12-10 2019-04-23 平安科技(深圳)有限公司 分布式任务调度方法、系统及存储介质
CN109684080A (zh) * 2018-12-10 2019-04-26 平安科技(深圳)有限公司 集中式任务调度方法、系统及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108132830A (zh) * 2016-12-01 2018-06-08 北京金山云网络技术有限公司 一种任务调度方法、装置及系统
CN107395353A (zh) * 2017-04-24 2017-11-24 阿里巴巴集团控股有限公司 一种区块链共识方法及装置
CN107800768A (zh) * 2017-09-13 2018-03-13 平安科技(深圳)有限公司 开放平台控制方法和系统
CN109669775A (zh) * 2018-12-10 2019-04-23 平安科技(深圳)有限公司 分布式任务调度方法、系统及存储介质
CN109684080A (zh) * 2018-12-10 2019-04-26 平安科技(深圳)有限公司 集中式任务调度方法、系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于分簇能耗聚集的云计算多目标任务调度算法;王翠娥;石家庄学院学报;20150531;第17卷(第3期);第49-54页 *

Also Published As

Publication number Publication date
CN110716796A (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
CN110716796B (zh) 智能任务调度方法及装置、存储介质、电子设备
US11068964B2 (en) Method and device for processing service request
CN109152061B (zh) 通道调配方法、装置、服务器及存储介质
CN107679718B (zh) 名单分配方法、设备以及计算机可读存储介质
CN109729106B (zh) 处理计算任务的方法、系统和计算机程序产品
CN110096336B (zh) 数据监控方法、装置、设备和介质
CN109800204B (zh) 数据分配方法及相关产品
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
CN107404541B (zh) 一种对等网络传输邻居节点选择的方法及系统
CN111694646A (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN110427546B (zh) 一种信息展示方法和装置
CN111327647A (zh) 一种容器对外提供服务的方法、装置及电子设备
CN115113997A (zh) 一种任务调度方法、装置、电子设备及存储介质
CN113361913A (zh) 一种通信业务编排方法、装置、计算机设备及存储介质
CN113672375B (zh) 资源分配预测方法、装置、设备及存储介质
CN110891087A (zh) 一种日志传输方法、装置及电子设备和存储介质
CN109885729B (zh) 一种显示数据的方法、装置及系统
CN111008071A (zh) 任务调度系统、方法和服务器
CN112182107B (zh) 名单数据获取方法、装置、计算机设备及存储介质
CN113094415B (zh) 数据抽取方法、装置、计算机可读介质及电子设备
CN107045452B (zh) 虚拟机调度方法和装置
CN116756282A (zh) 任务处理方法、服务器、语言预测系统和人机交互系统
CN116089367A (zh) 动态分桶方法、装置、电子设备和介质
CN112540844A (zh) 集群内容器调度方法、装置、存储介质和电子设备
CN111796934B (zh) 任务下发方法、装置、存储介质和电子设备

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
GR01 Patent grant
GR01 Patent grant