CN113961334B - 一种任务处理方法、装置、设备及存储介质 - Google Patents
一种任务处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113961334B CN113961334B CN202111584354.1A CN202111584354A CN113961334B CN 113961334 B CN113961334 B CN 113961334B CN 202111584354 A CN202111584354 A CN 202111584354A CN 113961334 B CN113961334 B CN 113961334B
- Authority
- CN
- China
- Prior art keywords
- priority queue
- priority
- task
- processed
- queue
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 40
- 238000004364 calculation method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 229920006395 saturated elastomer Polymers 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026676 system process Effects 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
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种任务处理方法、装置、设备及存储介质,所述方法包括:接收第一待处理任务的处理请求消息;根据处理请求消息中第一待处理任务的业务属性,确定第一待处理任务的优先级;根据第一待处理任务的优先级,获取第一优先级队列的饱和度;在第一优先级队列的饱和度大于第一预设阈值时,将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储,并将第一待处理任务存储至第一优先级队列。这样一来,可以提高高优先级待处理任务的处理效率。
Description
技术领域
本申请涉及通信领域,具体地涉及一种任务处理方法、装置、设备及存储介质。
背景技术
目前,随着物联网技术及移动终端的快速发展,具有通信功能的物联网卡的应用越来越广泛,推动了物联网卡平台技术的发展。由于物联网卡平台的系统资源及承载能力有限,若不进行限流处理,物联网卡平台将被大量高速、并发的访问拖慢。因此一般会针对系统承载能力进行相应的访问限流处理,通过限制系统的输入和输出流量以达到保护物联网卡平台的目的。而作为具有通信能力的平台,要求其具备高速处理访问请求的能力。在一般情况下,对吞吐量(TPS)要求是非常高的,即,对其在单位时间内处理请求的数量的要求比较高,并且远高于其访问限流的要求。因此,在现有技术中,为解决性能要求的差异,一般通过引入优先级队列的方式解决。
优先级队列是计算机科学中的一种抽象数据结构,优先级队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。在基于优先级队列的任务调度中,先根据每个任务的业务属性确定该任务的优先级,然后根据每个任务的优先级将其放入不同级别的优先级队列。并且,若该任务为低优先级任务,但此时低优先级队列已被占满,而高优先级队列中有空缺时,也可以将低优先级的任务放至高优先级队列中。系统将根据不同优先级队列的级别,按照从高优先级到低优先级的顺序处理该队列中包含的任务,进而优先处理相对来说更为关键紧急的任务,提高处理访问请求的效率。
但在现有的优先级队列的实现中,没有对高优先级队列中任务的保护机制。也就是说,在访问请求量陡增时,可能会出现高优先级队列被低优先级任务请求占满的情况。此时若存在一个高优先级任务的访问请求,由于高优先级队列已经被占满,那么该高优先级任务的请求将会被拒绝。因此在现有技术中,会存在请求峰值时关键任务请求被丢失的问题。
发明内容
有鉴于此,本申请提供一种任务处理方法、装置、设备及存储介质,以利于解决现有技术中关键任务请求丢失的问题。
第一方面,本申请实施例提供了一种任务处理方法,应用于电子设备,包括:
接收第一待处理任务的处理请求消息;所述处理请求消息中携带有所述第一待处理任务的业务属性;
根据所述处理请求消息中所述第一待处理任务的业务属性,确定所述第一待处理任务的优先级;
根据所述第一待处理任务的优先级,获取第一优先级队列的饱和度;所述第一优先级队列是所述第一待处理任务的优先级对应的优先级队列;所述第一优先级队列的饱和度用于表征所述第一优先级队列已用存储容量;
在所述第一优先级队列的饱和度大于第一预设阈值时,将所述第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储,并将所述第一待处理任务存储至所述第一优先级队列;其中,所述第二待处理任务的优先级小于所述第一待处理任务的优先级,所述第二优先级队列对应的优先级小于所述第一优先级队列对应的优先级。
优选地,所述根据所述第一待处理任务的优先级,获取第一优先级队列的饱和度包括:
根据所述第一待处理任务的优先级,确定所述第一待处理任务的优先级对应的第一优先级队列;
确定所述第一优先级队列的已用存储容量;
根据所述第一优先级队列的已用存储容量获取所述第一优先级队列的饱和度。
优选地,所述在所述第一优先级队列的饱和度大于第一预设阈值时,将所述第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储包括:
在所述第一优先级队列的饱和度大于第一预设阈值时,在至少一个未获取饱和度的第三优先级队列中,获取第二优先级队列的饱和度;所述至少一个未获取饱和度的第三优先级队列对应的优先级均小于所述第一优先级队列对应的优先级;所述第二优先级队列是所述至少一个未获取饱和度的第三优先级队列中优先级最高的第三优先级队列;
确定所述第二优先级队列的饱和度是否大于所述第二优先级队列对应的第二预设阈值;
若所述第二优先级队列的饱和度不大于所述第二优先级队列对应的第二预设阈值,则将所述第一优先级队列中已存储的第二待处理任务调度至所述第二优先级队列。
优选地,所述方法还包括:
若所述第二优先级队列的饱和度大于所述第二优先级队列对应的第二预设阈值,则按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列;
多次更新第二优先级队列直至更新后的第二优先级队列的饱和度不大于更新后的第二优先级队列对应的第二预设阈值或者更新后的第二优先级队列为预设默认队列。
优选地,所述方法还包括:
在第一优先级队列中确定优先级最接近停止更新后的第二优先级队列对应的优先级的待处理任务作为第二待处理任务。
优选地,所述方法还包括:
如果所述第一优先级队列的饱和度不大于第一预设阈值,则将第一待处理任务存储至所述第一优先级队列。
优选地,所述方法还包括:
确定所述第一优先级队列对应的队列标识;
根据所述第一待处理任务的业务属性,获取所述第一待处理任务对应的队列标识;
所述根据所述第一待处理任务的优先级,获取第一优先级队列的饱和度包括:
在所述第一待处理任务对应的队列标识与所述第一优先级队列对应的队列标识相匹配时,根据所述第一待处理任务的优先级,获取第一优先级队列的饱和度。
第二方面,本申请实施例提供了一种任务处理装置,包括:
接收单元,用于接收第一待处理任务的处理请求消息;所述处理请求消息中携带有所述第一待处理任务的业务属性;
获取单元,用于获取第一优先级队列的饱和度;
处理单元,用于根据所述处理请求消息中所述第一待处理任务的业务属性,确定所述第一待处理任务的优先级;还用于在所述第一优先级队列的饱和度大于第一预设阈值时,将所述第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储,并将所述第一待处理任务存储至所述第一优先级队列;其中,所述第二待处理任务的优先级小于所述第一待处理任务的优先级,所述第二优先级队列对应的优先级小于所述第一优先级队列对应的优先级。
第三方面,本申请实施例提供了一种电子设备,包括:
处理器和存储器,所述存储器存储有计算机程序,当所述计算机程序被执行时,执行上述第一方面中任意一项所述的方法步骤。
第四方面,本申请实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述第一方面中任意一项所述的方法。
采用本申请实施例所提供的方案,当接收到第一待处理任务的任务请求之后,先确定第一待处理任务的优先级。若第一待处理任务的优先级对应的队列为第一优先级队列,则获取第一优先级队列的饱和度,当第一优先级队列的饱和度大于第一预设阈值时,说明第一优先级队列的已用存储容量已接近第一优先级队列的存储容量,为了保证第一待处理任务可以存储至第一优先级队列,此时可以将第一优先级队列中的优先级较低的第二待处理任务调度至第二优先级队列,再将第一待处理任务存储至第一优先级队列。这样一来,为了防止第一优先级队列的存储容量被全部使用而导致无法及时处理需存储至该第一优先级队列的其他高优先级的待处理任务,因此,在第一优先级队列的饱和度达到第一预设阈值时,可以将第一优先级队列中存储的优先级比第一待处理任务低的第二待处理任务调度至第二优先级队列中,从而保证第一待处理任务存储至第一优先级队列时,第一优先级队列还有未使用存储空间,避免第一待处理任务因第一优先级队列的存储空间被全部使用而拒绝处理。即为,可以避免第一优先级队列因存储了低优先级待处理任务而导致高优先级待处理任务的处理请求丢失的问题,保证了优先级较高的待处理任务可以被及时处理,提高了高优先级待处理任务的处理效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种任务处理方法的流程示意图;
图2为本申请实施例提供的另一种任务处理方法的流程示意图;
图3为本申请实施例提供的另一种任务处理方法的流程示意图;
图4为本申请实施例提供的一种任务处理装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。
为了便于理解,本申请实施例这里介绍本申请实施例涉及的术语:
优先级队列:优先级队列是计算机科学中的一种抽象数据结构,优先级队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。
哈希算法:将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希计算,而通过原始数据映射之后得到的二进制值串就是哈希值。通过从哈希值不能反向推导出原始数据。并且哈希计算对输入数据非常敏感,只要修改了原始数据,最后得到的哈希值就不同。哈希计算的执行效率比较高效,针对较长的文本,也能快速地计算出哈希值。哈希算法有多种实现形式,常见的有MD4算法、MD5算法和安全哈希算法(SHA-1)等。
MD4算法:MD4算法的一般分为以下步骤:数据填充,将输入数据填充到数据长度是512位的倍数;分组处理,将填充后的数据每512位(即64字节)划分为一组,再对每组数据进行处理;处理完成后得到的128位结果即为MD4码。
MD5算法:MD5算法是哈希算法的一种,是MD4算法的升级版。MD5算法在MD4算法的基础上加入了第四轮的计算模式,每一个步骤都是一一对应的固定值,改进了MD4算法中在第二轮、第三轮计算中的漏洞,完善了访问输入分组的次序,从而减小其对称性和相同性。通过这些变化,使得MD5与MD4相比变得复杂很多,整个运转速度也要比MD4慢一些,但是从整体安全性、抗冲突和抗分析方面有了很大的提高。
SHA-1算法:也叫做安全哈希算法,主要应用于数字签名算法。SHA-1算法长度一般为160位的消息摘要,SHA-1算法在接收消息摘要的过程中,可以利用消息摘要来检查数据的完整情况。它不会从消息摘要中还原相关的内容,此外两个不同的消息摘要不会产生相同的消息摘要。SHA-1算法的计算方式是基于MD4的算法原理,它的填补和分组模式与MD5是一样的,但是在算法中,SHA-1的非线性函数、循环左移运算和加法常数与MD5算法的运算方式有一定的差异,SHA-1的安全性和稳定性比MD5算法更加可靠,且运算速度也有了一定的提高。
相关技术中,为保护物联网卡平台不被大量高速、并发的访问拖慢,通常会对其进行访问限流处理,而作为一个具有通信能力的平台,又要求其具备高速处理访问请求的能力。因此在现有技术中,为解决性能要求的差异,通常会通过引入优先级队列的方式解决。优先级队列是计算机科学中的一种抽象数据结构,优先级队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。即为,可以将接收的任务按照优先级的高低,预先存储至对应的优先级队列中。这样电子设备可以按照各个优先级队列的优先级,顺序执行各优先级队列中存储的待处理任务。但是在现有的优先级队列的实现中,没有对高优先级队列中任务的保护机制。也就是说,在访问请求量陡增时,可能会出现高优先级队列被低优先级任务请求占满的情况。此时若存在一个高优先级任务的访问请求,由于高优先级队列已经被占满,那么该高优先级任务的请求将会被拒绝。因此在现有技术中,会存在请求峰值时关键任务请求被丢失的问题。
针对上述问题,本申请实施例提供了一种任务处理方法、装置、设备及存储介质,在该方法中,当接收到第一待处理任务的任务处理请求消息时,先根据处理请求消息中携带的第一待处理任务的业务属性确定第一待处理任务的优先级;当确定接收到的第一待处理任务的优先级对应的队列为第一优先级队列时,可以先获取第一优先级队列的饱和度,若第一优先级队列的饱和度超过第一预设阈值时,说明第一优先级队列中的已用存储容量已经接近该第一优先级队列的存储总容量,此时若直接将第一待处理任务存储至第一优先级队列,将会导致因第一优先级队列过于饱和而拒绝存储第一待处理任务。此时可以将第一优先级队列中的第二待处理任务调度至第二优先级队列中存储,并将第一待处理任务存储至第一优先级队列。其中,第二待处理任务的优先级小于第一待处理任务的优先级,第二优先级队列对应的优先级小于第一优先级队列对应的优先级。也就是说,由于第一优先级队列的存储空间被全部使用,接收到需存储第一优先级队列的待处理任务时会拒绝该任务,导致该待处理任务无法及时处理。在本申请中,为了避免第一优先级队列的存储空间被全部使用,因此在接收到第一待处理任务时,若第一优先级队列的饱和度超过第一预设阈值,则可以先将第一优先级队列中优先级较低的第二待处理任务调度至第二优先级队列中,再将第一待处理任务存储至第一优先级队列,从而可以避免在存储第一待处理任务时,因第一优先级队列的存储空间被全部使用而拒绝处理第一待处理任务,提高了高优先级任务的处理效率。
图1为本申请实施例提供的一种任务处理方法的流程示意图。参见图1所示,本申请实施例提供的任务处理方法主要包括以下几个步骤:
步骤S101、接收第一待处理任务的处理请求消息。
其中,处理请求消息中携带有第一待处理任务的业务属性。
在本申请实施例中,当用户需要任务处理装置处理某一业务时,例如用户需要进行业务查询时,可以向任务处理装置发送第一待处理任务的处理请求消息。该处理请求消息中携带有业务属性用以标识出用户需要处理的业务的类型,关键性等信息。任务处理装置接收第一待处理任务的处理请求消息。
需要说明的是,待处理任务的业务属性包括待处理任务的关键性、截止期等参数信息,通过业务属性来反映不同待处理任务的特性。其中,关键性指的是待处理任务的重要程度,截止期是待处理任务的开始截至时间及结束截止时间。针对不同的待处理任务,其业务属性参数的值各不相同。
步骤S102、根据处理请求消息中第一待处理任务的业务属性,确定第一待处理任务的优先级。
在本申请实施例中,当任务处理装置接收到第一待处理任务的处理请求消息之后,需要先确定第一待处理任务的优先级。此时,任务处理装置可以解析第一待处理任务获取其内携带的业务属性。根据处理请求消息中第一待处理任务的业务属性,确定第一待处理任务的优先级。在确定第一待处理任务的优先级时,由于在业务属性的参数中,关键性和截止期最能反映不同待处理任务的特性,因此可以通过关键性、截止期这两个业务属性参数来确定第一待处理任务的优先级。例如,确定待处理任务的优先级算法可以是价值最高最优先算法(HVF,Highest Value First),也可以是截止期最早最优先算法(EDF,EarlistDeadline First)。
其中,价值最高最优先算法是根据待处理任务的关键性来确定优先级的。待处理任务的关键性越高,说明待处理任务的任务价值越高,那么其对应的优先级越高。在本申请实施例中,任务处理装置可以根据不同的待处理任务的关键性确定出不同的待处理任务的优先级。例如,关键性越高的待处理任务的优先级越高,关键性最高的待处理任务可以确定其优先级最高。基于此,任务处理装置当接收到第一待处理任务的请求消息时,可以根据第一待处理任务的业务属性中的关键性参数,来确定第一待处理任务对应的优先级。
截止期最早最优先算法是根据待处理任务的截止期来确定待处理任务的优先级。待处理任务的截止期越早,那么其对应的优先级越高。在本申请实施例中,任务处理装置可以根据不同的待处理任务的截止期确定不同的待处理任务的优先级。例如,截止期越早的待处理任务的优先级越高,截止期最早的待处理任务可确定其优先级最高。基于此,当任务处理装置接收到第一待处理任务的请求消息时,可以根据第一待处理任务的业务属性中的截止期参数,来确定第一待处理任务对应的优先级。
需要说明的是,确定第一待处理任务的优先级的优先级算法还可以是其他算法,例如,可以综合考虑待处理任务的关键性和截止期,确定待处理任务的优先级,当然还可以是其他算法,本申请对此不作限制。
步骤S103、根据第一待处理任务的优先级,获取第一优先级队列的饱和度。
其中,第一优先级队列是第一待处理任务的优先级对应的优先级队列;第一优先级队列的饱和度用于表征第一优先级队列已用存储容量。
在本申请实施例中,任务处理装置在确定出第一待处理任务的优先级后,可以根据该第一待处理任务的优先级,确定出其对应的优先级队列,即为第一优先级队列,例如,如果第一待处理任务的优先级为最高级,则其对应的优先级队列可以为最高优先级队列;如果第一待处理任务的优先级为中级,则其对应的优先级队列可以为中优先级队列。进而根据第一优先级的已使用存储容量计算出该第一优先级队列的饱和度。这样,通过第一优先级队列的饱和度可以获知该队列的容量的饱和程度。
作为一种可能的实现方式,根据第一待处理任务的优先级,获取第一优先级队列的饱和度包括:
根据第一待处理任务的优先级,确定第一待处理任务的优先级对应的第一优先级队列;确定第一优先级队列的已用存储容量;根据第一优先级队列的已用存储容量获取第一优先级队列的饱和度。
也就是说,任务处理装置在确定第一待处理任务的优先级之后,可以根据其优先级在已有的存储队列中,查找出与第一待处理任务的优先级相匹配的存储队列,将其确定为需要存储第一待处理任务的队列,即为,第一优先级队列。在将第一待处理任务存储至第一优先级队列之前,需先获取第一优先级队列的饱和度。此时可以先确定第一优先级队列的已用存储容量,进而根据第一优先级队列的已用存储容量获取第一优先级队列的饱和度。
作为一种可能的实现方式,第一优先级队列的饱和度与第一优先级队列的已用存储容量成正比例关系。即为,第一优先级队列的饱和度随着第一优先级队列的已用存储容量的增加而增加。
作为一种可能的实现方式,根据第一优先级队列的已用存储容量获取第一优先级队列的饱和度包括:根据第一优先级队列的已用存储容量,利用公式y=k * x + b,其中k与b为预设的常量,y表示第一优先级队列的饱和度,x表示第一优先级队列的已用存储容量。
即为,任务处理装置在获取了第一优先级队列的已用存储容量后,可以直接根据公式y=k * x + b计算出第一优先级队列的饱和度。通过上述公式可知,第一优先级队列的饱和度和第一优先级队列的已用存储容量成线性关系,这种获取第一优先级队列的饱和度的方式实现简单,复杂度低,易于实现。
作为一种可能的实现方式,k为第一优先级队列的存储总容量的倒数。
作为一种可能的实现方式,第一优先级队列的已用存储容量与第一优先级队列的饱和度之间也可以是非线性关系,例如可以是指数函数关系。此时,根据第一优先级队列的已用存储容量,利用公式y=kx+b,其中,k与b为预设的常量,y表示第一优先级队列的饱和度,x表示第一优先级队列的已用存储容量。这样,相对于上述第一优先级队列的已用存储容量与第一优先级队列的饱和度之间为线性关系,在待处理的任务数量较多时,本方式可以相同的已用存储容量情况下,提高该第一优先级队列的饱和度,从而可以降低第一优先级队列存储的待处理任务的数量。
需要说明的是,当第一优先级队列的已用存储容量与第一优先级队列的饱和度之间是非线性关系时,还可以是其他非线性关系,例如可以是多项式组合的关系,或者对数关系,根据第一优先级队列的已用存储容量,根据实际非线性关系计算出第一优先级队列的饱和度,本申请对此不作限制。
步骤S104、在第一优先级队列的饱和度大于第一预设阈值时,将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储,并将第一待处理任务存储至第一优先级队列。
其中,第二待处理任务的优先级小于第一待处理任务的优先级,第二优先级队列对应的优先级小于第一优先级队列对应的优先级。
在本申请实施例中,为了避免第一待处理任务因第一优先级队列的存储空间被完全使用而拒绝存储该第一待处理任务,或者第一优先级队列被低优先级的待处理任务占据而影响第一待处理任务的处理,可以先计算出第一优先级队列的饱和度,根据其饱和度来获知第一优先级队列的存储容量的饱和程度,将计算出的第一优先级队列的饱和度与其对应的第一预设阈值进行比较,在第一优先级队列的饱和度超过第一预设阈值时,先将第一优先级队列中的第二待处理任务调度至其他优先级队列中,再将第一待处理任务存储至该第一优先级队列中。
具体的,当第一优先级队列的饱和度大于第一预设阈值时,说明第一优先级队列的已用存储容量已经接近该第一优先级队列的存储总容量或者第一优先级队列中的待处理任务较多,此时若直接将第一待处理任务存储至第一优先级队列,将会导致第一优先级队列过于饱和而拒绝存储第一待处理任务或减缓第一待处理任务的处理,进而影响后续的任务请求的处理。因此在本申请实施例中,在获取了第一优先级队列的饱和度后,可以将第一优先级队列的饱和度与第一优先级队列对应的第一预设阈值进行比较,当第一优先级队列的饱和度大于第一预设阈值时,说明第一优先级队列存的存储空间存在被全部使用的风险,此时,任务处理装置可以将第一优先级队列中已存储的优先级低于第一待处理任务的第二待处理任务,调度至第二优先级队列中存储,并将第一待处理任务存储至第一优先级队列。即为,将第一优先级队列中的优先级低于第一待处理任务的第二待处理任务,调度出第一优先级队列。并将该第二待处理任务存储至优先级低于第一优先级队列的第二优先级队列中。将第一待处理任务存储至第一优先级队列中,从而可以保证将第一待处理任务存储至第一优先级队列中,第一优先级队列有未使用的存储容量,进而可以保证第一待处理任务的任务请求不会被丢失。
示例性的,第一优先级队列中存储了多个待处理的查询任务。假设用户需要进行充值业务,此时,用户可以向任务处理装置发送待处理的充值任务请求消息,该请求消息中携带有待处理的充值任务的业务属性。该业务属性包含待处理的充值任务的关键性、截止期等业务属性的参数信息。假设任务处理装置采用价值最高最优先算法确定待处理任务的优先级,利用公式y=k * x + b计算优先级队列的饱和度,第一优先级队列对应的第一预设阈值为A。此时,任务处理装置可以检测到待处理的充值任务的关键性,根据其关键性确定该待处理的充值任务的优先级。根据其优先级确定该待处理的充值任务对应的优先级队列,即为确定出第一优先级队列。
假设第一优先级队列的已用存储容量为B,那么任务处理装置可以确定第一优先级队列的饱和度为y1=k * B + b。然后,将第一优先级队列的饱和度y1与第一优先级队列对应的第一预设阈值A进行比较,若第一优先级队列的饱和度y1大于第一预设阈值A,说明第一优先级队列的已用存储容量已经接近该第一优先级队列的存储总容量。假设在第一优先级队列中存储的待处理的查询任务C的优先级低于上述待处理的充值任务的优先级,在第一优先级队列的饱和度y1大于第一预设阈值A时,任务处理装置可以先将第一优先级队列中的优先级低于待处理的充值任务的待处理的查询任务C调度出第一优先级队列,然后将待处理的查询任务C存储至优先级低于第一优先级队列的第二优先级队列中。这样一来,任务处理装置可以将待处理的充值任务存储至第一优先级队列,从而可以保证可以待处理的充值任务存储至对应优先级的第一优先级队列中,提高数据处理效率。此时,查询任务C可以为,任务处理装置接收查询任务C时判断为第一优先级队列的饱和度低于空闲阈值时存储至第一优先级队列的待处理任务,空闲阈值小于第一预设阈值A。
在一个可能的实施例中,如图2所示,在第一优先级队列的饱和度大于第一预设阈值时,将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储包括:
步骤S201、确定第一优先级队列中的第二待处理任务;第二待处理任务的优先级小于第一待处理任务的优先级。
其中,可以在第一优先级队列中选择优先级小于第一待处理任务的待处理任务作为第二待处理任务。此时,可以选择遇到的第一个优先级小于第一待处理任务的待处理任务或者选择第一优先级队列中的优先级最低的待处理任务。遇到的第一个优先级小于第一待处理任务的待处理任务可以为遍历过程中的第一个优先级小于第一待处理任务的待处理任务。
步骤S202、在至少一个未获取饱和度的第三优先级队列中,获取第二优先级队列的饱和度。
其中,至少一个未获取饱和度的第三优先级队列对应的优先级均小于第一优先级队列对应的优先级;第二优先级队列是至少一个未获取饱和度的第三优先级队列中优先级最高的第三优先级队列。
具体的,在第一优先级队列的饱和度大于第一预设阈值时,说明第一优先级队列的已用存储容量已经接近该第一优先级队列的存储总容量,此时若直接将第一待处理任务存储至第一优先级队列,将会因导致第一优先级队列过于饱和而拒绝存储第一待处理任务。因此,需先将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储。由于第二优先级队列是优先级低于第一优先级队列的存储队列。若在任务处理装置中存在至少一个优先级低于第一优先级队列的优先级队列,即为存在至少一个第三优先级队列时,需要在至少一个第三优先级队列中选取一个优先级队列来存储该第二待处理任务。由于在本申请实施例中,任务处理装置是根据优先级队列的饱和度来确定其是否可以存储第二待处理任务,因此,任务处理装置需要先获取优先级队列的饱和度,再根据优先级队列的饱和度来确定是否可以存储第二待处理任务。若任务处理装置获取了该优先级队列的饱和度,则说明任务处理装置已经根据优先级队列的饱和度进行了其是否可以存储第二待处理任务的判断。基于此,在本申请实施例中,可以在至少一个未获取饱和度的第三优先级队列中,将优先级最高的未获取饱和度的第三优先级队列作为第二优先级队列,并获取该第二优先级队列的饱和度。
其中,在本申请实施例中,获取第二优先级队列的饱和度的方式与上述获取第一优先级队列的饱和度的方式相同,在此不再赘述。
需要说明的是,在本步骤中所述的未获取饱和度的第三优先级队列是指针对当前次的第二待处理任务进行调度时,未进行饱和度计算的,且优先级低于第一优先级队列的优先级队列。
步骤S203、确定第二优先级队列的饱和度是否大于第二优先级队列对应的第二预设阈值。
需要说明的是,不同的第二优先级队列对应的第二预设阈值可以相同,也可以不同。在确定出第二优先级队列时,其对应的第二预设阈值也可以确定出。
需要说明的是,第二预设阈值与第一预设阈值可以相同,也可以不同,可以根据实际需求设置,本申请对此不做限制。
在本申请实施例中,在确定出第二优先级队列时,可以同时确定其对应的第二预设阈值。在获取第二优先级队列的饱和度之后,可以将第二优先级队列的饱和度与其对应的第二预设阈值进行比较,进而确定第二优先级队列的饱和度是否大于其对应的第二预设阈值。
需要说明的是,根据确定第二优先级队列的饱和度是否大于其对应的第二预设阈值的结果的不同,执行的步骤不同。若第二优先级队列的饱和度不大于其对应的第二预设阈值,执行步骤S204;若第二优先级队列的饱和度大于其对应的第二预设阈值,执行步骤S205。
步骤S204、若第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值,则将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列。
在本申请实施例中,当第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值时,说明第二优先级队列有足够的未使用的存储容量,此时可以直接将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中进行存储,从而可以增加第一优先级队列中未使用的存储容量。此时,第二待处理任务可以是在步骤S201中确定的待处理任务,或者,也可以更新为第一优先级队列中的优先级最接近第二优先级队列对应的优先级的待处理任务。
步骤S205、若第二优先级队列的饱和度大于第二优先级队列对应的第二预设阈值,则按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列,并重新执行步骤S202至步骤S205,直至确定第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值,将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列。
在本申请实施例中,当第二优先级队列的饱和度大于第二优先级队列对应的第二预设阈值时,说明第二优先级队列的已用存储容量已经接近该第二优先级队列的存储总容量,此时若直接将第一优先级队列中已存储的第二待处理任务直接调度至第二优先级队列,将会导致因第二优先级队列过于饱和而拒绝存储第二待处理任务,因此不能将第二待处理任务直接存储至该第二优先级队列中。此时需要按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列,即为,在至少一个未获取饱和度的第三优先级队列中,重新检测其他未获取饱和度的优先级队列的是否可以存储该第二待处理任务。可以按照各个优先级队列的优先级顺序,将至少一个未获取饱和度的第三优先级队列中,优先级最高的未获取饱和度的第三优先级队列更新为新的第二优先级队列。由于不同的优先级队列对应的预设阈值可能不同,因此在更新了第二优先级队列后,其对应的第二预设阈值也需相应的更新。即为重新确定更新后的第二优先级队列对应的第二预设阈值。在更新了第二优先级队列后,可以重新获取更新后的第二优先级队列的饱和度,并将更新后的第二优先级队列的饱和度与其对应的第二预设阈值进行比较,确定第二优先级队列的饱和度是否大于其对应的第二预设阈值。若确定第二优先级队列的饱和度大于其对应的第二预设阈值,则重新执行上述步骤S202至步骤S205,直至确定第二优先级队列的饱和度不大于其对应的第二预设阈值。
在确定第二优先级队列的饱和度不大于其对应的第二预设阈值时,说明第二优先级队列中有足够的空闲容量可以存储第一优先级队列中已存储的第二待处理任务,可以将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列。
进一步地,若第二优先级队列的饱和度大于第二优先级队列对应的第二预设阈值,则按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列,并重新执行步骤S202至步骤S205,直至确定第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值,将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列包括:
若第二优先级队列的饱和度大于第二优先级队列对应的第二预设阈值,确定第二优先级队列是否为预设默认队列。
若第二优先级队列不是预设默认队列,则按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列,并重新执行步骤S202至步骤S205,直至确定第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值,将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列。
在本申请实施例中,为了防止任务处理装置中优先级低于第一优先级队列的至少一个第三优先级队列的饱和度均大于其对应的第二预设阈值,导致第二待处理任务无法存储至其他的优先级队列中,可以预先设置默认队列,任务处理装置在检测到第二优先级队列是预设默认队列时,即使第二优先级队列的饱和度大于其对应的第二预设阈值,任务处理装置也可以直接将第二待处理任务存储至该预设默认队列中。基于此,在第二优先级队列的饱和度大于第二优先级队列对应的第二预设阈值时,任务处理装置可以检测当前第二优先级队列是否为预设的默认队列,若不是,则需要重新更新第二优先级队列,即为在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列,并重新执行步骤S202至步骤S205,直至确定第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值,将第一优先级队列中已存储的第二待处理任务调度至所述第二优先级队列。
进一步地,上述方法还包括:若第二优先级队列是预设默认队列,则将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列。
即为,任务处理装置在确定出第二优先级队列时预设默认队列时,可以直接将第二待处理任务存储至该预设默认队列中,防止其他优先级低于第一优先级队列的优先级队列无法存储第二待处理任务。
作为一种可能的实现方式,预设默认队列为任务处理装置中优先级最低的优先级队列。
示例性的,第一优先级队列中存储了多个待处理的查询任务。假设用户需要进行充值业务,此时,用户可以向任务处理装置发送待处理的充值任务请求消息,该请求消息中携带有待处理的充值任务的业务属性。任务处理装置中包含有第一优先级队列、优先级队列D、优先级队列E及优先级队列F。其中第一优先级队列为最高优先级队列,优先级队列D、优先级队列E及优先级队列F对应的优先级递减,且优先级队列F对应的优先级为最低优先级,并设置优先级队列F为预设默认队列。假设此时任务处理装置已确定接收到的待处理的充值任务需要存储至第一优先级队列,并且第一优先级队列的饱和度超过第一预设阈值。那么,优先级队列D、优先级队列E及优先级队列F即为上述至少一个未获取饱和度的第三优先级队列。
这样一来,由于第一优先级队列的饱和度超过第一预设阈值,此时任务处理装置需先将第一优先级队列中存储的优先级低于待处理的充值任务的待处理的查询任务G调度至第二优先级队列。此时,在至少一个未获取饱和度的第三优先级队列中,选取优先级最高的优先级队列D为第二优先级队列,同时可以确定其对应的第二预设阈值。任务处理装置此时可以获取优先级队列D的饱和度。假设优先级队列D的饱和度大于优先级队列D对应的第二预设阈值,先检测优先级队列D是否为预设默认队列。由于优先级队列D不是预设默认队列,因此继续执行下述步骤。由于优先级队列D的饱和度大于优先级队列D对应的第二预设阈值,说明优先级队列D的已用存储容量已经接近优先级队列D的存储总容量,此时若直接将第一优先级队列中的已存储的待处理的查询任务G直接调度至优先级队列D,将会导致因优先级队列D过于饱和而拒绝存储待处理的查询任务G,因此不能将待处理的查询任务G直接存储至优先级队列D中。
在确定优先级队列D的饱和度大于优先级队列D对应的第二预设阈值之后,需要按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中,重新检测其他未获取饱和度的优先级队列的是否可以存储待处理的查询任务G。任务处理装置可以按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中,将优先级最高的第三优先级队列更新为第二优先级队列。在本实施例中,在至少一个未获取饱和度的第三优先级队列中优先级最高的队列为优先级队列E,因此将优先级队列E更新为第二优先级队列,由于不同的优先级队列对应的预设阈值可能不同,因此需重新确定更新后的第二优先级队列对应的第二预设阈值,即,重新确定优先级队列E对应的第二预设阈值。在确定第二优先级队列更新为优先级队列E之后,重新获取优先级队列E的饱和度,并将优先级队列E的饱和度与其对应的第二预设阈值进行比较,确定优先级队列E的饱和度是否大于其对应的第二预设阈值。
若确定优先级队列E的饱和度不大于其对应的第二预设阈值,则说明优先级队列E有足够的未使用的存储容量,此时可以直接将第一优先级队列中已存储的待处理的查询任务调度至优先级队列E中进行存储,从而可以增加第一优先级队列中未使用的存储容量。
若确定优先级队列E的饱和度大于其对应的第二预设阈值,此时检测优先级队列E是否为预设默认队列。由于优先级队列E不是预设默认队列,因此继续执行下述步骤。当优先级队列E的饱和度大于其对应的第二预设阈值时,说明优先级队列E的已用存储容量已经接近优先级队列E的存储总容量,不能将待处理的查询任务G直接存储至优先级队列E中。此时需要在至少一个未获取饱和度的第三优先级队列中,重新检测其他未获取饱和度的优先级队列的是否可以存储该待处理的查询任务G。在本实施例中,在至少一个未获取饱和度的第三优先级队列中,此时只包括优先级队列F。因此将优先级队列F更新为第二优先级队列,并重新确定更新后的第二优先队列对应的第二预设阈值,即,重新确定优先级队列F对应的第二预设阈值。在确定第二优先级队列更新为优先级队列F之后,重新获取优先级队列F的饱和度,并将优先级队列F的饱和度与其对应的第二预设阈值进行比较,确定优先级队列F的饱和度是否大于其对应的第二预设阈值。若确定优先级队列F的饱和度不大于其对应的第二预设阈值,则说明优先级队列F有足够的未使用的存储容量,此时可以直接将第一优先级队列中已存储的待处理的查询任务调度至优先级队列F中进行存储,从而可以增加第一优先级队列中未使用的存储容量。
若确定优先级队列F的饱和度大于其对应的第二预设阈值,此时检测优先级队列F是否为预设默认队列。那么,任务处理装置可以检测到优先级队列F即为预设默认队列,此时可以直接将待处理的查询任务G存储至预设默认队列中,即,直接将待处理的查询任务G存储至优先级队列F中,以防止其他优先级低于第一优先级队列的优先级队列无法存储待处理的查询任务。
在一种可能的实现方式中,图3为本申请实施例提供的另一种任务处理方法的流程示意图。参见图3所示,具体如下。
步骤S301、接收第一待处理任务的处理请求消息;处理请求消息中携带有第一待处理任务的业务属性。
具体的可参考上述步骤S101,在此不再赘述。
步骤S302、根据处理请求消息中第一待处理任务的业务属性,确定第一待处理任务的优先级。
具体的可参考上述步骤S102,在此不再赘述。
步骤S303、确定第一优先级队列对应的队列标识。
在本申请实施例中,任务处理装置在确定出第一待处理任务的优先级后,可以在任务处理装置中存储的多个优先级队列中,确定出与该第一待处理任务的优先级相对应的第一优先级队列,并获取该第一优先级队列的队列标识。
需要说明的是,优先级队列的队列标识是预先设置的,用以标识出该优先级队列存储的任务类型。
步骤S304、根据第一待处理任务的业务属性,获取第一待处理任务对应的队列标识。
在本申请实施例中,任务处理装置在获取了第一待处理任务的业务属性后,可以根据业务属性中的关键性、截止期等参数的数据信息进行拼接,并将拼接后的结果作为预设算法的输入,利用预设算法生成对应的队列标识。其中,预设算法可以是哈希算法,例如MD5算法,还可以是安全哈希算法(SHA-1),本申请对此不作限制。
需要说明的是,根据不同的业务属性中的参数整合生成的队列标识是唯一的,业务属性参数不同,队列标识不同。因此通过确定第一待处理任务对应的队列标识与第一优先级队列对应的队列标识是否匹配,可以保证第一优先级队列中存储的不同待处理任务的业务属性一致。
步骤S305、若第一待处理任务对应的队列标识与第一优先级队列对应的队列标识相匹配,根据第一待处理任务的优先级,获取第一优先级队列的饱和度。
其中,若第一待处理任务对应的队列标识与第一优先级队列对应的队列标识相匹配,说明第一待处理任务可以存储至第一优先级队列。此时任务处理装置可以根据第一待处理任务的优先级,获取第一优先级队列的饱和度。具体的可参考上述步骤103,在此不再赘述。
在获取完成第一优先级队列的饱和度之后,可以确定第一优先级队列的饱和度是否大于第一预设阈值,根据结果不同,执行的步骤也不同。若第一优先级队列的饱和度大于第一预设阈值,则执行步骤S306;若第一优先级队列的饱和度不大于第一预设阈值,则执行步骤S311,具体如下。
步骤S306、确定第一优先级队列中的第二待处理任务,所述第二待处理任务的优先级小于所述第一待处理任务的优先级。
具体的可参考上述步骤S201,在此不再赘述。
步骤S307、在第一优先级队列的饱和度大于第一预设阈值时,在至少一个未获取饱和度的第三优先级队列中,获取第二优先级队列的饱和度。
具体的可参考上述步骤S202,在此不再赘述。
步骤S308、确定第二优先级队列的饱和度是否大于第二优先级队列对应的第二预设阈值。
具体的可参考上述步骤S203,在此不再赘述。
步骤S309、若第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值,则将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列。
具体的可参考上述步骤S204,在此不再赘述。
步骤S310、若第二优先级队列的饱和度大于第二优先级队列对应的第二预设阈值,则按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列,并重新执行步骤S307至步骤S310,直至确定第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值,将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列。
具体的可参考上述步骤S205,在此不再赘述。
步骤S311、在第一优先级队列的饱和度不大于第一预设阈值时,则将第一待处理任务存储至第一优先级队列。
当第一优先级队列的饱和度不大于第一预设阈值时,说明此时第一优先级队列的容量未接近饱和,还存在足够的未使用的存储容量,此时可以直接将第一待处理任务存储至第一优先级队列。
这样一来,为了防止第一优先级队列的存储容量被全部使用而导致无法及时处理需存储至该第一优先级队列的其他高优先级的待处理任务。因此,在第一优先级队列的饱和度达到第一预设阈值时,任务处理装置可以将第一优先级队列中存储的优先级比第一待处理任务低的第二待处理任务调度至第二优先级队列中,从而保证第一待处理任务存储至第一优先级队列时,第一优先级队列还有未使用存储空间,避免第一待处理任务因第一优先级队列的存储空间被全部使用而拒绝处理。也就是说,可以避免第一优先级队列因存储了低优先级待处理任务而导致高优先级待处理任务的处理请求丢失的问题,保证了优先级较高的待处理任务可以被及时处理,提高了高优先级待处理任务的处理效率。
与上述实施例相对应,如图4所示,本申请还提供了一种任务处理装置,包括:
接收单元401,用于接收第一待处理任务的处理请求消息。其中,处理请求消息中携带有第一待处理任务的业务属性。
获取单元402,用于获取第一优先级队列的饱和度。
处理单元403,用于根据处理请求消息中第一待处理任务的业务属性,确定第一待处理任务的优先级;还用于在第一优先级队列的饱和度大于第一预设阈值时,将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储,并将第一待处理任务存储至第一优先级队列;其中,第二待处理任务的优先级小于第一待处理任务的优先级,第二优先级队列对应的优先级小于第一优先级队列对应的优先级。
在一个可能的实施例中,处理单元403具体用于根据第一待处理任务的优先级,确定第一待处理任务的优先级对应的第一优先级队列;确定第一优先级队列的已用存储容量;根据第一优先级队列的已用存储容量获取第一优先级队列的饱和度。
在一个可能的实施例中,处理单元403还用于在第一优先级队列的饱和度大于第一预设阈值时,在至少一个未获取饱和度的第三优先级队列中,获取第二优先级队列的饱和度;至少一个未获取饱和度的第三优先级队列对应的优先级均小于第一优先级队列对应的优先级;第二优先级队列是至少一个未获取饱和度的第三优先级队列中优先级最高的第三优先级队列;
确定第二优先级队列的饱和度是否大于第二优先级队列对应的第二预设阈值;
若第二优先级队列的饱和度不大于第二优先级队列对应的第二预设阈值,则将第一优先级队列中已存储的第二待处理任务调度至第二优先级队列。
在一个可能的实施例中,处理单元403还用于,若第二优先级队列的饱和度大于第二优先级队列对应的第二预设阈值,则按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列;
多次更新第二优先级队列直至更新后的第二优先级队列的饱和度不大于更新后的第二优先级队列对应的第二预设阈值或者更新后的第二优先级队列为预设默认队列。
在一个可能的实施例中,处理单元403还用于,在第一优先级队列中确定优先级最接近停止更新后的第二优先级队列对应的优先级的待处理任务作为第二待处理任务。
在一种可能的实现方式中,处理单元403还用于,如果第一优先级队列的饱和度不大于第一预设阈值,则将第一待处理任务存储至第一优先级队列。
在一种可能的实现方式中,处理单元403还用于,确定第一优先级队列对应的队列标识;根据第一待处理任务的业务属性,获取第一待处理任务对应的队列标识。在第一待处理任务对应的队列标识与第一优先级队列对应的队列标识相匹配时,根据第一待处理任务的优先级,获取第一优先级队列的饱和度。
与上述实施例相对应,本申请还提供了一种电子设备。图5为本发明实施例提供的一种电子设备的结构示意图,所述电子设备500可以包括:处理器501、存储器502及通信单元503。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,所述通信单元503,用于建立通信信道,从而使所述任务处理设备可以与其它设备进行通信。接收其他设备发是的用户数据或者向其他设备发送用户数据。
所述处理器501,为任务处理设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器501可以由集成电路(integrated circuit,IC) 组成,例如可以由单颗封装的IC 所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器501可以仅包括中央处理器(central processing unit,CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
所述存储器502,用于存储处理器501的执行指令,存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
当存储器502中的执行指令由处理器501执行时,使得电子设备500能够执行图3所示实施例中的部分或全部步骤。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于设备实施例和程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种任务处理方法,其特征在于,包括:
接收第一待处理任务的处理请求消息;所述处理请求消息中携带有所述第一待处理任务的业务属性;
根据所述处理请求消息中所述第一待处理任务的业务属性,确定所述第一待处理任务的优先级;
根据所述第一待处理任务的优先级,获取第一优先级队列的饱和度;所述第一优先级队列是所述第一待处理任务的优先级对应的优先级队列;所述第一优先级队列的饱和度用于表征所述第一优先级队列的已用存储容量;
在所述第一优先级队列的饱和度大于第一预设阈值时,将所述第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储,并将所述第一待处理任务存储至所述第一优先级队列;其中,所述第二待处理任务的优先级小于所述第一待处理任务的优先级,所述第二优先级队列对应的优先级小于所述第一优先级队列对应的优先级,
所述在所述第一优先级队列的饱和度大于第一预设阈值时,将所述第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储包括:
在所述第一优先级队列的饱和度大于第一预设阈值时,在至少一个未获取饱和度的第三优先级队列中,获取第二优先级队列的饱和度;所述至少一个未获取饱和度的第三优先级队列对应的优先级均小于所述第一优先级队列对应的优先级;所述第二优先级队列是所述至少一个未获取饱和度的第三优先级队列中优先级最高的第三优先级队列;
确定所述第二优先级队列的饱和度是否大于所述第二优先级队列对应的第二预设阈值;
若所述第二优先级队列的饱和度不大于所述第二优先级队列对应的第二预设阈值,则将所述第一优先级队列中已存储的第二待处理任务调度至所述第二优先级队列;
若所述第二优先级队列的饱和度大于所述第二优先级队列对应的第二预设阈值,则按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列;
多次更新第二优先级队列直至更新后的第二优先级队列的饱和度不大于更新后的第二优先级队列对应的第二预设阈值或者更新后的第二优先级队列为预设默认队列,
在第一优先级队列中确定优先级最接近停止更新后的第二优先级队列对应的优先级的待处理任务作为第二待处理任务。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一待处理任务的优先级,获取第一优先级队列的饱和度包括:
根据所述第一待处理任务的优先级,确定所述第一待处理任务的优先级对应的第一优先级队列;
确定所述第一优先级队列的已用存储容量;
根据所述第一优先级队列的已用存储容量获取所述第一优先级队列的饱和度。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第一优先级队列的饱和度不大于第一预设阈值,则将第一待处理任务存储至所述第一优先级队列。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述第一优先级队列对应的队列标识;
根据所述第一待处理任务的业务属性,获取所述第一待处理任务对应的队列标识;
所述根据所述第一待处理任务的优先级,获取第一优先级队列的饱和度包括:
在所述第一待处理任务对应的队列标识与所述第一优先级队列对应的队列标识相匹配时,根据所述第一待处理任务的优先级,获取第一优先级队列的饱和度。
5.一种任务处理装置,其特征在于,包括:
接收单元,用于接收第一待处理任务的处理请求消息;所述处理请求消息中携带有所述第一待处理任务的业务属性;
获取单元,用于获取第一优先级队列的饱和度;所述第一优先级队列是所述第一待处理任务的优先级对应的优先级队列;所述第一优先级队列的饱和度用于表征所述第一优先级队列的已用存储容量;
处理单元,用于根据所述处理请求消息中所述第一待处理任务的业务属性,确定所述第一待处理任务的优先级;
所述处理单元,还用于在所述第一优先级队列的饱和度大于第一预设阈值时,将所述第一优先级队列中已存储的第二待处理任务调度至第二优先级队列中存储,并将所述第一待处理任务存储至所述第一优先级队列;其中,所述第二待处理任务的优先级小于所述第一待处理任务的优先级,所述第二优先级队列对应的优先级小于所述第一优先级队列对应的优先级;其中,
所述处理单元,具体用于在所述第一优先级队列的饱和度大于第一预设阈值时,在至少一个未获取饱和度的第三优先级队列中,获取第二优先级队列的饱和度;所述至少一个未获取饱和度的第三优先级队列对应的优先级均小于所述第一优先级队列对应的优先级;所述第二优先级队列是所述至少一个未获取饱和度的第三优先级队列中优先级最高的第三优先级队列;
确定所述第二优先级队列的饱和度是否大于所述第二优先级队列对应的第二预设阈值;
若所述第二优先级队列的饱和度不大于所述第二优先级队列对应的第二预设阈值,则将所述第一优先级队列中已存储的第二待处理任务调度至所述第二优先级队列;
若所述第二优先级队列的饱和度大于所述第二优先级队列对应的第二预设阈值,则按照优先级顺序,在至少一个未获取饱和度的第三优先级队列中将优先级最高的第三优先级队列更新为新的第二优先级队列;
多次更新第二优先级队列直至更新后的第二优先级队列的饱和度不大于更新后的第二优先级队列对应的第二预设阈值或者更新后的第二优先级队列为预设默认队列,
在第一优先级队列中确定优先级最接近停止更新后的第二优先级队列对应的优先级的待处理任务作为第二待处理任务。
6.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有计算机程序,当所述计算机程序被执行时,使得所述电子设备执行权利要求1-4任一项所述的方法。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1-4中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111584354.1A CN113961334B (zh) | 2021-12-23 | 2021-12-23 | 一种任务处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111584354.1A CN113961334B (zh) | 2021-12-23 | 2021-12-23 | 一种任务处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961334A CN113961334A (zh) | 2022-01-21 |
CN113961334B true CN113961334B (zh) | 2022-05-31 |
Family
ID=79473716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111584354.1A Active CN113961334B (zh) | 2021-12-23 | 2021-12-23 | 一种任务处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961334B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242727B (zh) * | 2022-07-15 | 2023-08-08 | 深圳市腾讯计算机系统有限公司 | 用户请求处理方法、装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110022A (zh) * | 2011-03-22 | 2011-06-29 | 上海交通大学 | 基于优先级调度的传感器网络嵌入式操作系统 |
CN110808922A (zh) * | 2019-10-29 | 2020-02-18 | 北京大米科技有限公司 | 一种消息处理方法、装置、存储介质及电子设备 |
CN111104210A (zh) * | 2019-11-26 | 2020-05-05 | 苏宁云计算有限公司 | 一种任务处理方法、装置及计算机系统 |
CN112395107A (zh) * | 2020-11-17 | 2021-02-23 | 航天信息股份有限公司 | 税控设备控制的方法、装置、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106470169A (zh) * | 2015-08-19 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 一种业务请求调整方法及设备 |
-
2021
- 2021-12-23 CN CN202111584354.1A patent/CN113961334B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110022A (zh) * | 2011-03-22 | 2011-06-29 | 上海交通大学 | 基于优先级调度的传感器网络嵌入式操作系统 |
CN110808922A (zh) * | 2019-10-29 | 2020-02-18 | 北京大米科技有限公司 | 一种消息处理方法、装置、存储介质及电子设备 |
CN111104210A (zh) * | 2019-11-26 | 2020-05-05 | 苏宁云计算有限公司 | 一种任务处理方法、装置及计算机系统 |
CN112395107A (zh) * | 2020-11-17 | 2021-02-23 | 航天信息股份有限公司 | 税控设备控制的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113961334A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8424007B1 (en) | Prioritizing tasks from virtual machines | |
EP2989543B1 (en) | Method and device for updating client | |
CN110597858A (zh) | 任务数据处理方法、装置、计算机设备和存储介质 | |
CN111490963B (zh) | 基于quic协议栈的数据处理方法、系统、设备及存储介质 | |
CN111061556A (zh) | 执行优先级任务的优化方法、装置、计算机设备及介质 | |
CN110704177B (zh) | 计算任务处理方法、装置、计算机设备和存储介质 | |
CN109951514A (zh) | 基于云存储的文件处理方法、系统及计算机设备 | |
CN112256417A (zh) | 一种数据请求处理方法、装置及计算机可读存储介质 | |
CN113961334B (zh) | 一种任务处理方法、装置、设备及存储介质 | |
CN113238861A (zh) | 一种任务执行方法和装置 | |
CN115239450A (zh) | 财务数据处理方法、装置、计算机设备及存储介质 | |
CN116703601B (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 | |
EP3945420A1 (en) | Method and apparatus for data processing, server and storage medium | |
CN110069217A (zh) | 一种数据存储方法及装置 | |
CN110471966B (zh) | 信息数据校验方法、装置、计算机设备及存储介质 | |
CN111143063A (zh) | 任务的资源预约方法及装置 | |
CN112650710B (zh) | 数据迁移的发送方法及装置、存储介质、电子装置 | |
CN115221041A (zh) | 多设备的测试方法、装置、电子设备及存储介质 | |
CN114281476A (zh) | Kubernetes云原生集群资源删除保护方法、装置、设备及存储介质 | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN113609178A (zh) | 数据推送方法、装置、设备以及存储介质 | |
CN109388918B (zh) | 一种资源包加密方法、装置、计算机设备及存储介质 | |
CN115828237A (zh) | 软件包安全性的核查方法、装置及系统 | |
EP4095708A1 (en) | Method and apparatus for managing file | |
CN113132324B (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 |