CN116107747A - 一种任务处理方法、装置、设备及介质 - Google Patents
一种任务处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116107747A CN116107747A CN202310092267.7A CN202310092267A CN116107747A CN 116107747 A CN116107747 A CN 116107747A CN 202310092267 A CN202310092267 A CN 202310092267A CN 116107747 A CN116107747 A CN 116107747A
- Authority
- CN
- China
- Prior art keywords
- target
- server
- task
- resource
- score
- 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
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请涉及数据处理技术领域,尤其涉及一种任务处理方法、装置、设备及介质。用以解决相关技术中随机确定进行处理的服务器,所导致的服务器宕掉的问题。由于在本申请实施例中,主服务器在选择目标服务器时,先根据每个其他服务器的剩余可用资源量及当前的未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量,并选择目标剩余可用资源量满足待处理任务的第二消耗资源量的目标服务器,考虑了待处理任务的消耗资源量,及其他服务器的剩余可用资源量,因此可以准确地确定出进行处理的目标服务器,并可以避免多次将任务发送至同一服务器进行处理,导致服务器宕掉的问题。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种任务处理方法、装置、设备及介质。
背景技术
在应用程序开发过程中,伴随任务数量的增长,批量的对任务进行处理已成为不可或缺的一部分。在分布式系统已成为主流的背景下,为了提高任务的处理效率,相关技术中采取分布式系统对任务进行处理。其中,分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的服务器组成的系统。分布式系统的出现是为了用廉价的、普通的多个服务器完成单个服务器无法完成的计算或存储,其目的是利用更多的服务器,处理更多的数据。
相关技术中由主服务器根据分布式系统中的其他服务器是否发生故障,随机选择对任务进行处理的服务器。相关技术的方案虽然可以良好的解决分布式系统中单点故障的问题,但是在选择处理任务的服务器时并没有做更多的深入,可能某些服务器连续分配到需要消耗大量资源的任务,某些服务器一直处理轻型任务的状态。在这个情况下,可能会出现分布式系统中某些服务器的资源被连续的消耗,而致使出现服务器宕掉的问题。
发明内容
本申请提供了一种任务处理方法、装置、设备及介质,用以解决相关技术中随机确定进行处理的服务器,所导致的服务器宕掉的问题。
本申请实施例提供了一种任务处理方法,所述方法包括:
若获取到待处理任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器的未处理任务的第一消耗资源量,并获取针对所述待处理任务对应保存的历史处理过程中的第二消耗资源量;
根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量;
选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器,将所述待处理任务发送至所述目标服务器。
进一步地,所述根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量包括:
针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的目标可用资源范围,并确定针对所述目标可用资源范围对应保存的资源分值;
针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一目标消耗资源范围;并获取针对所述第一目标消耗资源范围对应保存的第一消耗分值;
根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值。
进一步地,所述选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器包括:
根据预先保存的每个第二消耗资源范围,确定所述第二消耗资源量归属的第二目标消耗资源范围,并获取针对所述第二目标消耗资源范围对应保存的第二消耗分值;
根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器。
进一步地,所述根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器包括:
针对每个其他服务器,若确定的该其他服务器的目标资源分值大于所述第二消耗分值,则将该其他服务器确定为候选服务器;
选择目标资源分值与所述第二消耗分值的差值最接近的候选服务器作为目标服务器。
进一步地,所述确定针对所述目标资源范围对应保存的第一消耗分值之后,所述根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值之前,所述方法还包括:
根据预先保存的每个剩余时长范围,确定该其他服务器当前未处理任务的剩余处理时长归属的目标剩余时长范围;并获取针对所述目标剩余时长范围对应保存的第一待处理消耗分值;
获取针对该其他服务器保存的任务处理的成功率,根据预先保存的每个成功率范围,确定所述成功率归属的第一目标成功率范围;确定针对所述第一目标成功率范围对应保存的第二待处理消耗分值;
根据所述第一消耗分值、所述第一待处理消耗分值、所述第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,采用所述第一目标消耗分值对所述第一消耗分值更新。
进一步地,所述获取针对所述目标消耗资源范围对应保存的第二消耗分值之后,所述根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值之前,所述方法还包括:
根据预先保存的每个时长范围,确定针对所述待处理任务保存的处理时长归属的目标时长范围;并获取针对所述目标时长范围对应保存的第三待处理消耗分值;
根据预先保存的每个成功率范围,确定针所述待处理任务保存的成功率归属的第二目标成功率范围;确定针对所述第二目标成功率范围对应保存的第四待处理消耗分值;
根据所述第二消耗分值、所述第三待处理消耗分值、所述第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,采用所述第二目标消耗分值对所述第二消耗分值更新。
进一步地,所述将所述待处理任务发送至所述目标服务器包括:
若所述待处理任务包括多个子任务,则获取针对所述待处理任务对应保存的每个子任务的处理顺序;
将所述待处理任务及所述每个子任务的处理顺序发送至所述目标服务器。
本申请实施例还提供了一种任务处理装置,所述装置包括:
获取模块,用于若获取到待处理任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器的未处理任务的第一消耗资源量,并获取针对所述待处理任务对应保存的历史处理过程中的第二消耗资源量;
确定模块,用于根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量;
处理模块,用于选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器,将所述待处理任务发送至所述目标服务器。
进一步地,所述确定模块,具体用于针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的目标可用资源范围,并确定针对所述目标可用资源范围对应保存的资源分值;针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一目标消耗资源范围;并获取针对所述第一目标消耗资源范围对应保存的第一消耗分值;根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值。
进一步地,所述处理模块,具体用于根据预先保存的每个第二消耗资源范围,确定所述第二消耗资源量归属的第二目标消耗资源范围,并获取针对所述第二目标消耗资源范围对应保存的第二消耗分值;根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器。
进一步地,所述处理模块,具体用于针对每个其他服务器,若确定的该其他服务器的目标资源分值大于所述第二消耗分值,则将该其他服务器确定为候选服务器;选择目标资源分值与所述第二消耗分值的差值最接近的候选服务器作为目标服务器。
进一步地,所述确定模块,还用于根据预先保存的每个剩余时长范围,确定该其他服务器当前未处理任务的剩余处理时长归属的目标剩余时长范围;并获取针对所述目标剩余时长范围对应保存的第一待处理消耗分值;获取针对该其他服务器保存的任务处理的成功率,根据预先保存的每个成功率范围,确定所述成功率归属的第一目标成功率范围;确定针对所述第一目标成功率范围对应保存的第二待处理消耗分值;根据所述第一消耗分值、所述第一待处理消耗分值、所述第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,采用所述第一目标消耗分值对所述第一消耗分值更新。
进一步地,所述处理模块,还用于根据预先保存的每个时长范围,确定针对所述待处理任务保存的处理时长归属的目标时长范围;并获取针对所述目标时长范围对应保存的第三待处理消耗分值;根据预先保存的每个成功率范围,确定针所述待处理任务保存的成功率归属的第二目标成功率范围;确定针对所述第二目标成功率范围对应保存的第四待处理消耗分值;根据所述第二消耗分值、所述第三待处理消耗分值、所述第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,采用所述第二目标消耗分值对所述第二消耗分值更新。
进一步地,所述处理模块,具体用于若所述待处理任务包括多个子任务,则获取针对所述待处理任务对应保存的每个子任务的处理顺序;将所述待处理任务及所述每个子任务的处理顺序发送至所述目标服务器。
本申请实施例还提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一项所述任务处理方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述任务处理方法的步骤。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如上述任一项所述任务处理方法的步骤。
在本申请实施例中,主服务器若获取到待处理的任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器当前的未处理任务的第一消耗资源量,并获取针对任务对应保存的历史处理过程中的第二消耗资源量;根据每个其他服务器的剩余可用资源量及当前的未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量,选择目标剩余可用资源量满足第二消耗资源量的目标服务器,将待处理任务发送至目标服务器。由于在本申请实施例中,主服务器在选择目标服务器时,先根据每个其他服务器的剩余可用资源量及当前的未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量,并选择目标剩余可用资源量满足待处理任务的第二消耗资源量的目标服务器,考虑了待处理任务的消耗资源量,及其他服务器的剩余可用资源量,因此可以准确地确定出进行处理的目标服务器,并可以避免多次将任务发送至同一服务器进行处理,导致服务器宕掉的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种任务处理过程示意图;
图2为本申请实施例提供的一种任务处理过程的详细示意图;
图3为本申请实施例提供的一种任务处理装置结构示意图;
图4为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了准确地确定处理任务的服务器,本申请实施例提供了一种任务处理方法、装置、设备及介质。
该任务处理方法包括:主服务器若获取到待处理的任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器当前的未处理任务的第一消耗资源量,并获取针对任务对应保存的历史处理过程中的第二消耗资源量;根据每个其他服务器的剩余可用资源量及当前的未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量,选择目标剩余可用资源量满足第二消耗资源量的目标服务器,将待处理任务发送至目标服务器。
实施例1:
图1为本申请实施例提供的一种任务处理过程示意图,该过程包括以下步骤:
S101:若获取到待处理任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器的未处理任务的第一消耗资源量,并获取针对所述待处理任务对应保存的历史处理过程中的第二消耗资源量。
本申请实施例提供的任务处理方法应用于主服务器,该主服务器为分布式系统中的主服务器。
分布式系统因为包含多个服务器,系统为了维护各服务器之间的联系并实现数据同步,势必需要在多个服务器之间选举出一个主服务器,其中,主服务器可以被称为引领者(leader)或者主宰者(master),由主服务器来维护服务器之间的联系,以及在数据同步时保证数据一致性,该选举出的主服务器即为本申请实施例中的主服务器。
每个待处理任务均可以被保存在数据库中,并且数据库中可以针对每个待处理任务保存有对应的处理时间,若当前时间为针对某一待处理任务对应保存的处理时间,则主服务器可以获取到待处理任务。其中,可以是主服务器的任务扫描器在数据库中进行扫描,获取到该待处理任务。数据库中保存的待处理任务为周期性任务,具体的,主服务器如何获取待处理任务为现有技术,在此不再赘述。
在获取待处理任务时,还可以是用户操作自身使用的设备,用户使用的设备通过识别用户的操作,接收对应的待处理任务,并将接收到的待处理任务发送至主服务器,主服务器即可获取到待处理任务。具体的,可以是用户在自身使用的设备上安装的预设应用的预设页面,选择待处理任务的名称或编号等唯一区分该待处理任务的标识,该预设应用可以为基于Java开发的一个分布式系统的调度应用,用户使用的设备在获取到唯一区分该待处理任务的标识后,将该标识发送至主服务器,主服务器获取针对该标识对应保存的任务,该任务即为待处理任务,其中,通过此种方式获取到的待处理任务为临时性任务。也就是说用户可以通过预设应用实时添加任务。
主服务器在获取到待处理任务后,为了确定处理该待处理任务的目标服务器,可以获取分布式系统中每个其他服务器的剩余可用资源量。其中,该分布式系统为包括该主服务器的分布式系统,该剩余可用资源量可以为剩余内存、中央处理器(centralprocessing unit,CPU)剩余容量、剩余磁盘空间等中的一种或多种。为了获取到其他服务器的剩余可用资源量,主服务器可以向每个其他服务器发送剩余可用资源量的查询指令,其他服务器在接收到剩余可用资源量的查询指令后,将自身的剩余可用资源量的信息发送至主服务器。
主服务器还可以获取每个其他服务器当前的未处理任务的第一消耗资源量,为了获取每个其他服务器当前的未处理任务的第一消耗资源量,主服务器可以向每个其他服务器发送未处理任务的消耗资源量的查询指令,其他服务器在接收到未处理任务的消耗资源量的查询指令后,可以将当前的未处理任务的名称或编号等唯一区分任务的标识发送至主服务器,该主服务器根据预先保存的任务的标识与消耗资源量的对应关系,确定接收到的该标识对应的第一消耗资源量。其中,若未处理任务包括多个任务,则其他服务器发送的标识为多个标识,分别为未处理任务包括的每个任务的标识,主服务器可以获取每个标识对应的消耗资源量,并将获取到的每个消耗资源量的和值,确定为第一消耗资源量。
为了确定处理该待处理任务的服务器,主服务器还可以获取针对该待处理任务对应保存的历史处理过程中的第二消耗资源量,其中,该第二消耗资源量可以为历史处理过程中,每次处理该待处理业务时消耗的资源量的平均值,或最大值等。
S102:根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量。
为了准确地确定目标服务器,主服务器可以针对每个其他服务器,根据该其他服务器的剩余可用资源量,及未处理任务的第一消耗资源量,确定该其他服务器的目标剩余可用资源量。具体的,主服务器可以确定该剩余可用资源量和该第一消耗资源量的差值,将该差值确定为该其他服务器的目标剩余可用资源量;若未处理任务包括多个任务,则可以将多个任务的资源消耗量的和值,确定为第一消耗资源,并可以将该剩余可用资源量和该第一消耗资源量的差值,确定为该其他目标服务器的目标剩余可用资源。其中,该目标剩余可用资源量为该其他服务器处理完当前的未处理任务之后剩余的资源量。主服务器通过该方式即可确定出每个其他服务器的目标剩余可用资源量。
若资源为内存、CPU容量、磁盘空间等中的多种,则可以分别针对每个资源,确定该资源对应的目标剩余可用资源量。
主服务器的任务扫描器可以将获取道的剩余可用资源量、第一消耗资源量及第二消耗资源量分发至主服务器的传递分发器,由传递分发器确定每个其他服务器的目标剩余可用资源量。
S103:选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器,将所述待处理任务发送至所述目标服务器。
为了准确地确定目标服务器,主服务器可以针对每个其他服务器,确定该其他服务器的目标剩余可用资源量是否满足第二消耗资源量,其中,若该其他服务器的目标剩余可用资源量超过第二消耗资源量,则说明该其他服务器具有处理该待处理任务的能力,可以确定该其他服务器的目标剩余可用资源满足第二消耗资源量,主服务器通过该方式可以确定出每个其他服务器中,具有处理待处理任务的能力的其他服务器。
主服务器可以在获取到的每个具有处理该待处理任务的能力的其他服务器中,确定目标服务器,其中,主服务器可以随机获取一个具有处理待处理任务的能力的其他服务器,该其他服务器即为目标服务器;主服务器也可以将具有处理该待处理任务的能力的其他服务器中,目标剩余可用资源量最大的其他服务器确定为目标服务器。
其中,若资源为内存、CPU容量、磁盘空间等中的多种,则可以针对每个资源均确定出对应的目标剩余可用资源量,及第二消耗资源量,若某一其他服务器的该资源对应的目标剩余可用资源量满足对应的第二消耗资源量,则说明在该资源方面,该其他服务器具有处理待处理任务的能力,若该其他服务器在每个资源方面均具有处理待处理任务的能力,则说明该其他服务器具有处理待处理任务的能力。主服务器可以随机获取一个具有处理待处理任务的能力的其他服务器,该其他服务器即为目标服务器;主服务器也可以将具有处理该待处理任务的能力的其他服务器中,内存、CPU容量、磁盘空间等中的任一种对应的目标剩余可用资源量最大的其他服务器确定为目标服务器。
在确定了目标服务器之后,主服务器可以将该待处理任务发送至目标服务器,由目标服务器处理该待处理任务。其中,主服务器可以将该待处理任务的名称或编号等唯一区分该待处理任务的标识发送至目标服务器,目标服务器即可处理该待处理任务。具体的,目标服务器在接收到唯一区分任务的标识后,如何处理任务为现有技术,在此不再赘述。
本申请实施例中,选择目标服务器的方法可以被称为选举算法,在选择目标服务器时,即在执行调度时,主服务器会根据待执行任务的历史执行情况,和每个其他服务器的目标剩余可用资源量,选举出最适合处理待处理任务的目标服务器,并将待处理任务分配给该目标服务器,主服务器选出的目标服务器为资源相对丰富的服务器。本申请实施例的方法,可以更合理的利用服务器资源,并可以更合理的进行批量任务的处理。
相关技术在执行周期性任务时,通常采用分布式任务调度平台(xxl-job),xxl-job是一个开源的分布式任务调度平台,它的使用方法为在开源应用框架(Spring Boot)工程的启动类上使用@EnableScheduling注解,并根据任务在需要调度的方法上使用@Scheduled注解,并使用cron表达式配置定时规则。该方式的缺点是不支持应用于分布式系统,又因为是通过注解直接写在程序里,因此无法动态调整处理任务的时间,也没有办法手动关闭或发起任务。
相关技术在执行周期性任务时,还会采用大数据调度系统(DolphinScheduler)方式,DolphinScheduler是一款功能非常强大的分布式调度系统,它提供了数据库可用性组(Database Availability Group,DAG)可视化拖拽建立调度的功能,同时支持shell、sql、python等多种扩展,也就是说可以识别shell、sql、python等多种方式建立的任务,系统采用开源项目(quartz)分布式调度器,并支持cron表达式可视化的生成等。但是该方案在处理任务的过程中,默认采用任务先进先出的原则或者指定优先级的原则,对服务器的资源使用情况没有做更多的考虑,并不能准确地确定出处理任务的目标服务器。
本申请实施例就是为了服务器资源的最优分配而设计的,通过服务器之间的选举,可以将任务分配给最优的目标服务器,充分利用服务器资源,防止任务堆积在某一个服务器中。
由于在本申请实施例中,主服务器在选择处理待处理任务的目标服务器时,先根据每个其他服务器的剩余可用资源量及当前的未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量,并选择目标剩余可用资源量满足待处理任务的第二消耗资源量的目标服务器,从而在确定目标服务器时,考虑了待处理任务的消耗资源量,及其他服务器的剩余可用资源量,因此可以准确地确定出进行处理的目标服务器,并可以避免多次将任务发送至同一服务器进行处理,导致服务器宕掉的问题。
实施例2:
为了确定其他服务器的目标剩余可用资源量,在上述实施例的基础上,在本申请实施例中,所述根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量包括:
针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的目标可用资源范围,并确定针对所述目标可用资源范围对应保存的资源分值;
针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一目标消耗资源范围;并获取针对所述第一目标消耗资源范围对应保存的第一消耗分值;根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值。
为了准确地确定目标服务器,主服务器可以采用分值表示每个其他服务器的目标剩余可用资源量,为了确定表示其他服务器的目标剩余可用资源的目标资源分值,主服务器可以先确定表示其他服务器的剩余可用资源的资源分值,并确定表示第一消耗资源量的第一消耗分值,根据资源分值及第一消耗分值确定目标资源分值。
为了确定表示其他服务器的可用资源量的资源分值,主服务器本地预先保存有多个可用资源范围,其中,该多个可用资源范围彼此之间不存在交集,也就是说每个资源量仅可以归属其中一个可用资源范围。主服务器可以针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的可用资源范围,该可用资源范围即为目标可用资源范围,主服务器本地还针对每个可用资源范围对应保存有分值,主服务器可以获取针对目标资源范围对应保存的分值,该分值即为资源分值。主服务器通过该方式可以确定出表示每个其他服务器的可用资源量的资源分值。若剩余可用资源量为剩余内存、CPU剩余容量、剩余磁盘空间等中的多种,则在确定资源分值时,可以针对每个资源,分别采用上述方式确定每个剩余可用资源的资源分值。
为了确定表示其他服务器的第一消耗资源量的第一消耗分值,主服务器本地预先保存有多个第一消耗资源范围,其中,该多个第一消耗资源范围彼此之间不存在交集,也就是说每个资源量仅可以归属该多个第一消耗资源范围中的一个第一消耗资源范围。主服务器可以针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一消耗资源范围,该归属的第一消耗资源范围即为第一目标消耗资源范围,主服务中还针对每个第一消耗资源范围对应保存有一个分值,主服务器可以获取针对第一目标资源范围对应保存的分值,该分值即为第一消耗分值。主服务器通过该方式可以确定出表示每个其他服务器的第一消耗资源量的第一消耗分值。若第一消耗资源量为内存、CPU容量、磁盘空间等中的多种,则在确定第一消耗分值时,可以分别针对每个资源,采用上述方式确定每个第一消耗资源量的第一消耗分值。
在确定出每个其他服务器的资源分值和第一消耗分值后,主服务器可以针对每个其他服务器,确定该其他服务器的资源分值与第一消耗分值的差值,并将该差值确定为该其他服务器的目标剩余可用资源量对应的目标资源分值。
实施例3:
为了准确地确定处理待处理任务的目标服务器,在上述各实施例的基础上,在本申请实施例中,所述选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器包括:
根据预先保存的每个第二消耗资源范围,确定所述第二消耗资源量归属的第二目标消耗资源范围,并获取针对所述第二目标消耗资源范围对应保存的第二消耗分值;
根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器。
为了准确地确定处理待处理任务的目标服务器,主服务器可以先确定表示待处理业务的第二消耗资源量的第二消耗分值,根据每个其他服务器的目标资源分值及第二消耗分值,选择对应的目标服务器。
为了确定表示待处理任务的第二消耗资源量的第二消耗分值,主服务器本地预先保存有多个第二消耗资源范围,其中,该多个第二消耗资源范围彼此之间不存在交集,也就是说每个消耗资源量仅可以归属该多个第二消耗资源范围中的一个第二消耗资源范围。主服务器可以根据预先保存的每个第二消耗资源范围,确定待处理任务的第二消耗资源量归属的第二消耗资源范围,该归属的第二消耗资源范围即为第二目标消耗资源范围,主服务器中还针对每个第二消耗资源范围对应保存有一个分值,主服务器可以获取针对第二目标消耗资源范围对应保存的分值,该分值即为第二消耗分值。若第二消耗资源量为内存、CPU容量、磁盘空间等中的多种,则在确定第二消耗分值时,可以分别采用上述方式针对每个资源,确定每个第二消耗资源量的第二消耗分值。
主服务器在确定表示待处理业务的第二消耗资源量的第二消耗分值后,可以根据确定的其他服务器的目标资源分值是否大于第二消耗分值,选择对应的目标服务器,其中,若某一其他服务器的目标资源分值大于第二消耗分值,则可以说明该其他服务器具有处理待处理任务的能力,因此主服务器可以在每个对应的目标资源分值大于第二消耗分值的其他服务器中,随机选择一个其他服务器,将该其他服务器确定为目标服务器;主服务器还可以在每个对应的目标资源分值大于第二消耗分值的其他服务器中,选择对应的目标资源分值最大的其他服务器,将该其他服务器确定为目标服务器。
若资源为内存、CPU容量、磁盘空间等中的多种,则可以针对每个资源均确定出对应的目标资源分值,及第二消耗分值,若某一其他服务器的该资源对应的目标资源分值超过对应的第二消耗分值,则说明在该资源方面,该其他服务器具有处理待处理任务的能力,若该其他服务器在每个资源方面均具有处理待处理任务的能力,则说明该其他服务器具有处理待处理任务的能力。主服务器可以随机获取一个具有处理待处理任务的能力的其他服务器,该其他服务器即为目标服务器;主服务器也可以将具有处理该待处理任务的能力的其他服务器中,内存、CPU容量、磁盘空间等中的任一种,对应的目标资源分值最大的其他服务器确定为目标服务器。
本申请实施例中,主服务器根据其他服务器的目标剩余资源量,及待处理任务的历史执行情况,可以更合理的确定处理待处理任务的目标服务器。并且主服务器可以获取各个其他服务器的剩余可用资源情况,并选举最优的目标服务器进行待处理任务的处理,更有效的保护了整个批量任务集群即分布式系统的稳定运行。
实施例4:
为了准确地确定处理待处理任务的目标服务器,在上述各实施例的基础上,在本申请实施例中,所述根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器包括:
针对每个其他服务器,若确定的该其他服务器的目标资源分值大于所述第二消耗分值,则将该其他服务器确定为候选服务器;
选择目标资源分值与所述第二消耗分值最接近的候选服务器作为目标服务器。
主服务器在确定处理待处理任务的目标服务器时,可以针对分布式系统中的每个其他服务器,判断该其他服务器的目标资源分值是否大于待处理任务的第二消耗分值,若大于待处理任务的第二消耗分值,则说明该其他服务器具备处理该待处理任务的能力,可以将该其他服务器确定为候选服务器,若不大于待处理任务的第二消耗分值,则可以说明该其他服务器不具备处理该待处理任务的能力,主服务器通过该方式可以确定出该每个其他服务器中的每个候选服务器。若资源为内存、CPU容量、磁盘空间等中的多种,则可以针对每个资源均确定出对应的目标资源分值,及第二消耗分值,若某一其他服务器对应的每个资源的目标资源分值均大于对应的第二消耗分值,则将该其他服务器确定为候选服务器。
在确定出该每个候选服务器后,主服务器可以确定每个候选服务器的目标资源分值与第二消耗分值的差值,并获取该每个差值最小的候选服务器,该候选服务器即为每个候选服务器中目标资源分值与第二消耗分值最接近的候选服务器,主服务器可以将该候选服务器确定为目标服务器。若资源为内存、CPU容量、磁盘空间等中的多种,则主服务器可以将内存、CPU容量、磁盘空间等中的任一种,对应的目标资源分值与第二消耗分值最接近的候选服务器确定为目标服务器。
实施例5:
为了准确地确定处理待处理任务的目标服务器,在上述各实施例的基础上,在本申请实施例中,所述确定针对所述目标资源范围对应保存的第一消耗分值之后,所述根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值之前,所述方法还包括:
根据预先保存的每个剩余时长范围,确定该其他服务器当前未处理任务的剩余处理时长归属的目标剩余时长范围;并获取针对所述目标剩余时长范围对应保存的第一待处理消耗分值;
获取针对该其他服务器保存的任务处理的成功率,根据预先保存的每个成功率范围,确定所述成功率归属的第一目标成功率范围;确定针对所述第一目标成功率范围对应保存的第二待处理消耗分值;
根据所述第一消耗分值、所述第一待处理消耗分值、所述第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,采用所述第一目标消耗分值对所述第一消耗分值更新。
在实际应用场景中,分布式系统中可能存在某一其他服务器当前未处理任务的处理时长较长,若由该其他服务器处理待处理任务,则该待处理任务被处理完成的时间较晚;分布式系统中还可能存在某一其他服务器处理任务的成功率较低,若由该其他服务器处理待处理任务,则可能存在待处理任务被处理失败的风险。为了准确地确定处理待处理任务的目标服务器,主服务器在确定出分布式系统中每个其他服务器的第一消耗分值后,可以根据对应的处理任务的成功率及当前未处理任务的剩余处理时长,重新对第一消耗分值进行确定。
为了提高第一消耗分值确定的准确性,主服务器本地预先保存有多个剩余时长范围,其中,每个剩余时长范围彼此之间均不存在交集,也就是说每个时长仅可以归属一个剩余时长范围。主服务器可以获取该其他服务器当前未处理任务的剩余处理时长,具体的,主服务器可以向该其他服务器发送查询指令,该其他服务器可以将当前未处理任务的任务名称发送至主服务器,主服务器根据预先保存的名称和处理时长的对应关系,确定接收到的任务名称对应的剩余处理时长。
其中,未处理任务包括当前正在被处理的任务,若存在该其他服务器正在处理的任务,则该其他服务器可以将正在处理的任务的名称及已经处理的时长发送至主服务器,主服务器根据确定的名称对应的处理时长及已经处理的时长,确定第一剩余处理时长,主服务器采用上述实施例描述的方式,确定未处理任务中未被处理的任务对应的剩余处理时长,该剩余处理时长为第二剩余处理时长,主服务器可以将第一剩余处理时长和第二剩余处理时长的和值,确定为未处理任务对应的剩余处理时长。主服务器在获取到剩余处理时长后,可以根据预先保存的每个剩余时长范围,获取该获取到的剩余处理时长归属的剩余时长范围,并将该剩余时长范围确定为目标剩余时长范围,主服务器本地还针对每个剩余时长范围对应保存有分值,主服务器可以获取针对目标剩余时长范围对应保存的第一待处理消耗分值。
为了提高第一消耗分值确定的准确性,主服务器本地还针对每个其他服务器对应保存有成功率,其中,针对某一其他服务器对应保存的成功率,为该其他服务器处理任务时的成功率,其中,每个其他服务器对应保存的成功率可以被保存在数据库中。主服务器本地还保存有多个成功率范围,其中,每个成功率范围彼此之间不存在交集,也就是说每个成功率仅可以归属一个成功率范围。主服务器可以根据预先保存的每个成功率范围,确定获取到的成功率归属的第一目标成功率范围,并确定针对第一目标成功率范围对应保存的第二待处理消耗分值。
在确定第一消耗分值、第一待处理消耗分值及第二待处理消耗分值后,主服务器可以根据第一消耗分值、第一待处理消耗分值、第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,在确定第一目标消耗分值后,主服务器可以采用第一目标消耗分值对第一消耗分值更新,并针对更新后的第一消耗分值,执行后续确定目标服务器的操作。
实施例6:
为了准确地确定处理待处理任务的目标服务器,在上述各实施例的基础上,在本申请实施例中,所述获取针对所述目标消耗资源范围对应保存的第二消耗分值之后,所述根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值之前,所述方法还包括:
根据预先保存的每个时长范围,确定针对所述待处理任务保存的处理时长归属的目标时长范围;并获取针对所述目标时长范围对应保存的第三待处理消耗分值;
根据预先保存的每个成功率范围,确定针所述待处理任务保存的成功率归属的第二目标成功率范围;确定针对所述第二目标成功率范围对应保存的第四待处理消耗分值;
根据所述第二消耗分值、所述第三待处理消耗分值、所述第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,采用所述第二目标消耗分值对所述第二消耗分值更新。
在实际应用场景中,待处理任务的处理时长较长及待处理任务的处理成功率较低均会影响目标服务器的选择。为了准确地确定处理待处理任务的目标服务器,主服务器在确定出待处理任务的第二消耗分值后,可以根据待处理任务被处理的成功率及处理时长,重新对第二消耗分值进行确定。
为了提高第二消耗分值确定的准确性,主服务器本地预先保存有多个时长范围,其中,每个时长范围彼此之间均不存在交集,也就是说每个时长仅可以归属一个时长范围。主服务器可以获取该待处理任务的处理时长,具体的,主服务器可以根据保存的任务及时长的对应关系,获取该待处理任务的处理时长。主服务器在获取到处理时长后,可以根据预先保存的每个时长范围,获取该获取到的处理时长归属的时长范围,并将该时长范围确定为目标时长范围,主服务器本地还针对每个时长范围对应保存有分值,主服务器可以获取针对目标时长范围对应保存的第三待处理消耗分值。
为了提高第二消耗分值确定的准确性,主服务器本地还针对每个任务保存有对应的成功率,其中,针对某一任务对应保存的成功率,为该任务在被历史处理过程中成功率的平均值,其中,针对每个任务保存有对应的成功率可以被保存在数据库中。主服务器本地还保存有多个成功率范围,其中,每个成功率范围彼此之间不存在交集,也就是说每个成功率仅可以归属一个成功率范围。主服务器可以根据预先保存的每个成功率范围,确定获取到的成功率归属的第二目标成功率范围,并确定针对第二目标成功率范围对应保存的第四待处理消耗分值。
在确定第二消耗分值、第三待处理消耗分值及第四待处理消耗分值后,主服务器可以根据第二消耗分值、第三待处理消耗分值、第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,在确定第二目标消耗分值后,主服务器可以采用第二目标消耗分值对第二消耗分值更新,并针对更新后的第二消耗分值,执行后续确定目标服务器的操作。
目标服务器在对待处理任务进行处理后,可以将对待处理任务的处理情况,包括处理时长,是否成功等信息发送至主服务器,主服务器将接收到的信息保存在数据库中,便于后续采用接收到的信息对针对任务对应保存的成功率及处理时长等信息进行更新。
实施例7:
为了准确地对待处理任务进行处理,在上述各实施例的基础上,在本申请实施例中,所述将所述待处理任务发送至所述目标服务器包括:
若所述待处理任务包括多个子任务,则获取针对所述待处理任务对应保存的每个子任务的处理顺序;
将所述待处理任务及所述每个子任务的处理顺序发送至所述目标服务器。
在实际应用场景中,待处理任务可能包括多个子任务,而多个任务之间存在执行顺序,在此种情况下会有执行顺序的要求。为了使得目标服务器可以准确有效地对待处理任务进行处理,主服务器在将待处理任务发送至目标服务器时,还可以将每个子任务的处理顺序发送至目标服务器。
主服务器在确定目标服务器之后,可以先判断待处理任务是否为包括多个子任务的任务,具体的,主服务器本地可以针对包括多个子任务的每个任务的标识保存有一个集合,主服务器可以判断该集合中是否包含该待处理任务的标识,若该集合中包含该待处理任务的标识,则说明该待处理任务为包括多个子任务的任务,若该集合中不包含该待处理任务的标识,则说明该待处理任务并非包括多个子任务的任务。若确定该待处理任务为包括多个子任务的任务,则可以获取针对该待处理任务对应保存的每个子任务的执行顺序,主服务器可以将该待处理任务,及该每个子任务的执行顺序发送至目标服务器。目标服务器即可根据该多个子任务的执行顺序对多个子任务依次处理,从而可以实现对待处理任务的处理。
其中,可以预先在数据库中设置有任务组,任务组中的任务为包含子任务的任务,并且可以在数据库中针对包含多个子任务的任务保存有每个子任务的执行顺序,可以由任务扫描器获取每个子任务的执行顺序。数据库中的信息可以支持自定义开发,开发者可以根据自己的需求开发程序,并配置好任务信息,便于任务的执行。
在实际应用场景中,会有执行时间、执行顺序等要求,执行时间的控制可以由主服务器的调度程序负责完成,执行顺序的控制可以由目标服务器的调度程序负责完成,执行时间指的是获取待处理任务并选择目标服务器的时间,执行顺序指的是为多个待处理任务被处理的顺序,在本申请实施例中,可以采用现有的相关技术具体进行调度。
目标服务器在接收到待处理任务后,可以根据待处理任务及当前的未处理任务之间的任务优先级,对每个任务依次进行执行,目标服务器还可以记录每个任务开始处理的时间、处理完成的时间等信息,并根据记录的信息生成日志,将日志发送至主服务器,从而实现主服务器对执行结果的监控。具体的,可以由目标服务器的任务执行器处理任务,主服务器实时监控各任务的处理情况。本申请实施例的方案对批量调度任务的支持更友好。用户还可以通过自身使用的设备安装的预设应用查询待处理任务的处理情况等信息,用户还可以通过选择待处理任务,使得某些任务重新被处理,实现重跑等功能。
图2为本申请实施例提供的一种任务处理过程的详细示意图。
由图2可知,主服务器的任务扫描器可以获取待处理任务,任务扫描器可以将待处理任务发送至任务分发器,任务分发器选举最适合处理待处理任务的目标服务器,其中,每个其他服务器执行任务的组件可以被称为任务执行器集群,目标服务器的任务执行器对待处理任务进行处理,并且主服务器还可以监控待处理任务的执行情况。
实施例8:
图3为本申请实施例提供的一种任务处理装置结构示意图,所述装置包括:
获取模块301,用于若获取到待处理任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器的未处理任务的第一消耗资源量,并获取针对所述待处理任务对应保存的历史处理过程中的第二消耗资源量;
确定模块302,用于根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量;
处理模块303,用于选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器,将所述待处理任务发送至所述目标服务器。
在一种可能的实施方式中,所述确定模块302,具体用于针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的目标可用资源范围,并确定针对所述目标可用资源范围对应保存的资源分值;针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一目标消耗资源范围;并获取针对所述第一目标消耗资源范围对应保存的第一消耗分值;根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值。
在一种可能的实施方式中,所述处理模块303,具体用于根据预先保存的每个第二消耗资源范围,确定所述第二消耗资源量归属的第二目标消耗资源范围,并获取针对所述第二目标消耗资源范围对应保存的第二消耗分值;根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器。
在一种可能的实施方式中,所述处理模块303,具体用于针对每个其他服务器,若确定的该其他服务器的目标资源分值大于所述第二消耗分值,则将该其他服务器确定为候选服务器;选择目标资源分值与所述第二消耗分值的差值最接近的候选服务器作为目标服务器。
在一种可能的实施方式中,所述确定模块302,还用于根据预先保存的每个剩余时长范围,确定该其他服务器当前未处理任务的剩余处理时长归属的目标剩余时长范围;并获取针对所述目标剩余时长范围对应保存的第一待处理消耗分值;获取针对该其他服务器保存的任务处理的成功率,根据预先保存的每个成功率范围,确定所述成功率归属的第一目标成功率范围;确定针对所述第一目标成功率范围对应保存的第二待处理消耗分值;根据所述第一消耗分值、所述第一待处理消耗分值、所述第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,采用所述第一目标消耗分值对所述第一消耗分值更新。
在一种可能的实施方式中,所述处理模块303,还用于根据预先保存的每个时长范围,确定针对所述待处理任务保存的处理时长归属的目标时长范围;并获取针对所述目标时长范围对应保存的第三待处理消耗分值;根据预先保存的每个成功率范围,确定针所述待处理任务保存的成功率归属的第二目标成功率范围;确定针对所述第二目标成功率范围对应保存的第四待处理消耗分值;根据所述第二消耗分值、所述第三待处理消耗分值、所述第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,采用所述第二目标消耗分值对所述第二消耗分值更新。
在一种可能的实施方式中,所述处理模块303,具体用于若所述待处理任务包括多个子任务,则获取针对所述待处理任务对应保存的每个子任务的处理顺序;将所述待处理任务及所述每个子任务的处理顺序发送至所述目标服务器。
实施例9:
图4为本申请实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本申请实施例还提供了一种电子设备,如图4所示,包括:处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信;
所述存储器403中存储有计算机程序,当所述程序被所述处理器401执行时,使得所述处理器401执行如下步骤:
若获取到待处理任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器的未处理任务的第一消耗资源量,并获取针对所述待处理任务对应保存的历史处理过程中的第二消耗资源量;
根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量;
选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器,将所述待处理任务发送至所述目标服务器。
进一步地,所述处理器401,具体用于针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的目标可用资源范围,并确定针对所述目标可用资源范围对应保存的资源分值;
针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一目标消耗资源范围;并获取针对所述第一目标消耗资源范围对应保存的第一消耗分值;
根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值。
进一步地,所述处理器401,具体用于根据预先保存的每个第二消耗资源范围,确定所述第二消耗资源量归属的第二目标消耗资源范围,并获取针对所述第二目标消耗资源范围对应保存的第二消耗分值;
根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器。
进一步地,所述处理器401,具体用于针对每个其他服务器,若确定的该其他服务器的目标资源分值大于所述第二消耗分值,则将该其他服务器确定为候选服务器;
选择目标资源分值与所述第二消耗分值的差值最接近的候选服务器作为目标服务器。
进一步地,所述处理器401,还用于根据预先保存的每个剩余时长范围,确定该其他服务器当前未处理任务的剩余处理时长归属的目标剩余时长范围;并获取针对所述目标剩余时长范围对应保存的第一待处理消耗分值;
获取针对该其他服务器保存的任务处理的成功率,根据预先保存的每个成功率范围,确定所述成功率归属的第一目标成功率范围;确定针对所述第一目标成功率范围对应保存的第二待处理消耗分值;
根据所述第一消耗分值、所述第一待处理消耗分值、所述第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,采用所述第一目标消耗分值对所述第一消耗分值更新。
进一步地,所述处理器401,还用于根据预先保存的每个时长范围,确定针对所述待处理任务保存的处理时长归属的目标时长范围;并获取针对所述目标时长范围对应保存的第三待处理消耗分值;
根据预先保存的每个成功率范围,确定针所述待处理任务保存的成功率归属的第二目标成功率范围;确定针对所述第二目标成功率范围对应保存的第四待处理消耗分值;
根据所述第二消耗分值、所述第三待处理消耗分值、所述第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,采用所述第二目标消耗分值对所述第二消耗分值更新。
进一步地,所述处理器401,具体用于若所述待处理任务包括多个子任务,则获取针对所述待处理任务对应保存的每个子任务的处理顺序;
将所述待处理任务及所述每个子任务的处理顺序发送至所述目标服务器。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
实施例10:
在上述各实施例的基础上,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行如下步骤:
若获取到待处理任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器的未处理任务的第一消耗资源量,并获取针对所述待处理任务对应保存的历史处理过程中的第二消耗资源量;
根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量;
选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器,将所述待处理任务发送至所述目标服务器。
在一种可能的实施方式中,所述根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量包括:
针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的目标可用资源范围,并确定针对所述目标可用资源范围对应保存的资源分值;
针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一目标消耗资源范围;并获取针对所述第一目标消耗资源范围对应保存的第一消耗分值;
根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值。
在一种可能的实施方式中,所述选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器包括:
根据预先保存的每个第二消耗资源范围,确定所述第二消耗资源量归属的第二目标消耗资源范围,并获取针对所述第二目标消耗资源范围对应保存的第二消耗分值;
根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器。
在一种可能的实施方式中,所述根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器包括:
针对每个其他服务器,若确定的该其他服务器的目标资源分值大于所述第二消耗分值,则将该其他服务器确定为候选服务器;
选择目标资源分值与所述第二消耗分值的差值最接近的候选服务器作为目标服务器。
在一种可能的实施方式中,所述确定针对所述目标资源范围对应保存的第一消耗分值之后,所述根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值之前,所述方法还包括:
根据预先保存的每个剩余时长范围,确定该其他服务器当前未处理任务的剩余处理时长归属的目标剩余时长范围;并获取针对所述目标剩余时长范围对应保存的第一待处理消耗分值;
获取针对该其他服务器保存的任务处理的成功率,根据预先保存的每个成功率范围,确定所述成功率归属的第一目标成功率范围;确定针对所述第一目标成功率范围对应保存的第二待处理消耗分值;
根据所述第一消耗分值、所述第一待处理消耗分值、所述第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,采用所述第一目标消耗分值对所述第一消耗分值更新。
在一种可能的实施方式中,所述获取针对所述目标消耗资源范围对应保存的第二消耗分值之后,所述根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值之前,所述方法还包括:
根据预先保存的每个时长范围,确定针对所述待处理任务保存的处理时长归属的目标时长范围;并获取针对所述目标时长范围对应保存的第三待处理消耗分值;
根据预先保存的每个成功率范围,确定针所述待处理任务保存的成功率归属的第二目标成功率范围;确定针对所述第二目标成功率范围对应保存的第四待处理消耗分值;
根据所述第二消耗分值、所述第三待处理消耗分值、所述第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,采用所述第二目标消耗分值对所述第二消耗分值更新。
在一种可能的实施方式中,所述将所述待处理任务发送至所述目标服务器包括:
若所述待处理任务包括多个子任务,则获取针对所述待处理任务对应保存的每个子任务的处理顺序;
将所述待处理任务及所述每个子任务的处理顺序发送至所述目标服务器。
实施例11:
本申请实施例还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述应用于电子设备的任一方法实施例所述的任务处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
由于在本申请实施例中,主服务器在选择目标服务器时,先根据每个其他服务器的剩余可用资源量及当前的未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量,并选择目标剩余可用资源量满足待处理任务的第二消耗资源量的目标服务器,考虑了待处理任务的消耗资源量,及其他服务器的剩余可用资源量,因此可以准确地确定出进行处理的目标服务器,并可以避免多次将任务发送至同一服务器进行处理,导致服务器宕掉的问题。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器处理的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上处理一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上处理的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (17)
1.一种任务处理方法,其特征在于,应用于主服务器,所述方法包括:
若获取到待处理任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器的未处理任务的第一消耗资源量,并获取针对所述待处理任务对应保存的历史处理过程中的第二消耗资源量;
根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量;
选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器,将所述待处理任务发送至所述目标服务器。
2.根据权利要求1所述的方法,其特征在于,所述根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量包括:
针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的目标可用资源范围,并确定针对所述目标可用资源范围对应保存的资源分值;
针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一目标消耗资源范围;并获取针对所述第一目标消耗资源范围对应保存的第一消耗分值;
根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值。
3.根据权利要求2所述的方法,其特征在于,所述确定针对所述目标资源范围对应保存的第一消耗分值之后,所述根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值之前,所述方法还包括:
根据预先保存的每个剩余时长范围,确定该其他服务器当前未处理任务的剩余处理时长归属的目标剩余时长范围;并获取针对所述目标剩余时长范围对应保存的第一待处理消耗分值;
获取针对该其他服务器保存的任务处理的成功率,根据预先保存的每个成功率范围,确定所述成功率归属的第一目标成功率范围;确定针对所述第一目标成功率范围对应保存的第二待处理消耗分值;
根据所述第一消耗分值、所述第一待处理消耗分值、所述第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,采用所述第一目标消耗分值对所述第一消耗分值更新。
4.根据权利要求2所述的方法,其特征在于,所述选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器包括:
根据预先保存的每个第二消耗资源范围,确定所述第二消耗资源量归属的第二目标消耗资源范围,并获取针对所述第二目标消耗资源范围对应保存的第二消耗分值;
根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器。
5.根据权利要求4所述的方法,其特征在于,所述根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器包括:
针对每个其他服务器,若确定的该其他服务器的目标资源分值大于所述第二消耗分值,则将该其他服务器确定为候选服务器;
选择目标资源分值与所述第二消耗分值的差值最接近的候选服务器作为目标服务器。
6.根据权利要求4所述的方法,其特征在于,所述获取针对所述目标消耗资源范围对应保存的第二消耗分值之后,所述根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值之前,所述方法还包括:
根据预先保存的每个时长范围,确定针对所述待处理任务保存的处理时长归属的目标时长范围;并获取针对所述目标时长范围对应保存的第三待处理消耗分值;
根据预先保存的每个成功率范围,确定针所述待处理任务保存的成功率归属的第二目标成功率范围;确定针对所述第二目标成功率范围对应保存的第四待处理消耗分值;
根据所述第二消耗分值、所述第三待处理消耗分值、所述第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,采用所述第二目标消耗分值对所述第二消耗分值更新。
7.根据权利要求1所述的方法,其特征在于,所述将所述待处理任务发送至所述目标服务器包括:
若所述待处理任务包括多个子任务,则获取针对所述待处理任务对应保存的每个子任务的处理顺序;
将所述待处理任务及所述每个子任务的处理顺序发送至所述目标服务器。
8.一种任务处理装置,其特征在于,所述装置包括:
获取模块,用于若获取到待处理任务,则获取分布式系统中每个其他服务器的剩余可用资源量,及每个其他服务器的未处理任务的第一消耗资源量,并获取针对所述待处理任务对应保存的历史处理过程中的第二消耗资源量;
确定模块,用于根据每个其他服务器的剩余可用资源量及未处理任务的第一消耗资源量,确定每个其他服务器的目标剩余可用资源量;
处理模块,用于选择目标剩余可用资源量满足所述第二消耗资源量的目标服务器,将所述待处理任务发送至所述目标服务器。
9.根据权利要求8所述的装置,其特征在于,所述确定模块,具体用于针对每个其他服务器,根据预先保存的每个可用资源范围,确定该其他服务器的剩余可用资源量归属的目标可用资源范围,并确定针对所述目标可用资源范围对应保存的资源分值;针对每个其他服务器,根据预先保存的每个第一消耗资源范围,确定该其他服务器未处理任务的第一消耗资源量归属的第一目标消耗资源范围;并获取针对所述第一目标消耗资源范围对应保存的第一消耗分值;根据所述资源分值与所述第一消耗分值的差值,确定该其他服务器的目标剩余可用资源量对应的目标资源分值。
10.根据权利要求9所述的装置,其特征在于,所述处理模块,具体用于根据预先保存的每个第二消耗资源范围,确定所述第二消耗资源量归属的第二目标消耗资源范围,并获取针对所述第二目标消耗资源范围对应保存的第二消耗分值;根据确定的其他服务器的目标资源分值是否大于所述第二消耗分值,选择对应的目标服务器。
11.根据权利要求10所述的装置,其特征在于,所述处理模块,具体用于针对每个其他服务器,若确定的该其他服务器的目标资源分值大于所述第二消耗分值,则将该其他服务器确定为候选服务器;选择目标资源分值与所述第二消耗分值的差值最接近的候选服务器作为目标服务器。
12.根据权利要求9所述的装置,其特征在于,所述确定模块,还用于根据预先保存的每个剩余时长范围,确定该其他服务器当前未处理任务的剩余处理时长归属的目标剩余时长范围;并获取针对所述目标剩余时长范围对应保存的第一待处理消耗分值;获取针对该其他服务器保存的任务处理的成功率,根据预先保存的每个成功率范围,确定所述成功率归属的第一目标成功率范围;确定针对所述第一目标成功率范围对应保存的第二待处理消耗分值;根据所述第一消耗分值、所述第一待处理消耗分值、所述第二待处理消耗分值及对应的权重,确定该其他服务器对应的第一目标消耗分值,采用所述第一目标消耗分值对所述第一消耗分值更新。
13.根据权利要求10所述的装置,其特征在于,所述处理模块,还用于根据预先保存的每个时长范围,确定针对所述待处理任务保存的处理时长归属的目标时长范围;并获取针对所述目标时长范围对应保存的第三待处理消耗分值;根据预先保存的每个成功率范围,确定针所述待处理任务保存的成功率归属的第二目标成功率范围;确定针对所述第二目标成功率范围对应保存的第四待处理消耗分值;根据所述第二消耗分值、所述第三待处理消耗分值、所述第四待处理消耗分值及对应的权重,确定该其他服务器对应的第二目标消耗分值,采用所述第二目标消耗分值对所述第二消耗分值更新。
14.根据权利要求9所述的装置,其特征在于,所述处理模块,具体用于若所述待处理任务包括多个子任务,则获取针对所述待处理任务对应保存的每个子任务的处理顺序;将所述待处理任务及所述每个子任务的处理顺序发送至所述目标服务器。
15.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述权利要求1-7任一项所述任务处理方法的步骤。
16.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述权利要求1-7任一项所述任务处理方法的步骤。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如上述权利要求1-7任一项所述任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310092267.7A CN116107747A (zh) | 2023-01-18 | 2023-01-18 | 一种任务处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310092267.7A CN116107747A (zh) | 2023-01-18 | 2023-01-18 | 一种任务处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116107747A true CN116107747A (zh) | 2023-05-12 |
Family
ID=86265158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310092267.7A Pending CN116107747A (zh) | 2023-01-18 | 2023-01-18 | 一种任务处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107747A (zh) |
-
2023
- 2023-01-18 CN CN202310092267.7A patent/CN116107747A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936604B (zh) | 一种资源调度方法、装置和系统 | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN109343939B (zh) | 一种分布式集群及并行计算任务调度方法 | |
CN110389843B (zh) | 一种业务调度方法、装置、设备及可读存储介质 | |
CN107168777B (zh) | 分布式系统中资源的调度方法以及装置 | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN112650572A (zh) | 一种分布式任务调度方法、装置、计算机设备及存储介质 | |
CN111813523A (zh) | 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质 | |
CN113032102B (zh) | 资源重调度方法、装置、设备和介质 | |
CN111427675A (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
US20180039520A1 (en) | Methods and Nodes for Scheduling Data Processing | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN113626173A (zh) | 调度方法、装置及存储介质 | |
CN113703929B (zh) | 一种任务调度方法、系统、计算设备和存储介质 | |
CN111143063B (zh) | 任务的资源预约方法及装置 | |
CN117331668A (zh) | 一种作业调度方法、装置、设备及存储介质 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN116107747A (zh) | 一种任务处理方法、装置、设备及介质 | |
CN112130979B (zh) | 调度任务及训练神经网络模型的方法、装置、终端和介质 | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 | |
CN114564281A (zh) | 容器调度方法、装置、设备及存储介质 | |
CN114546631A (zh) | 任务调度方法、控制方法、核心、电子设备、可读介质 | |
CN109101260B (zh) | 一种节点软件的升级方法、装置和计算机可读存储介质 | |
CN113051063A (zh) | 分布式任务的任务调度方法、装置及电子设备 | |
CN113760485A (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 |