一种业务请求处理方法及装置制造方法

文档序号:7812705阅读:108来源:国知局
一种业务请求处理方法及装置制造方法
【专利摘要】本发明公开了一种业务请求处理方法及装置,用以避免系统资源不足时,业务间资源抢夺导致的业务执行不畅的问题。该方法为:接收新的业务请求;确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启用所述缓存队列,将所述新的业务请求加入所述缓存队列;从所述缓存队列中获取所述新的业务请求并处理。
【专利说明】一种业务请求处理方法及装置

【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种业务请求处理方法及装置。

【背景技术】
[0002]在分布式或非分布式系统中,在同一时间需要承载多个业务,每个业务的运行都需要消耗系统的关键资源,例如系统内存、中央处理器(CPU)等资源。但是,系统关键资源是有限的,在同一时间承载的业务过多时,会存在系统资源不足的情况。
[0003]在系统关键资源充足时,各业务执行顺畅,在系统关键资源不足时,各业务之间抢夺关键资源,将会导致部分业务无法获得足够的关键资源,该部分业务将无法顺利执行,造成业务执行速度慢、业务暂停执行等后果。
[0004]如图1所示的分布式系统中,包含有3个业务发起模块、2个业务处理模块,其中,3个业务发起模块可访问同一个业务处理模块。业务处理模块在系统关键资源不足时,直接丢弃业务发起模块新发起的业务请求,间隔一段时长后由该业务发起模块重新发起被丢弃的业务请求。在业务发起模块发起的业务请求量超过了业务处理模块的处理能力时,业务处理模块的关键资源耗尽,使得业务请求的处理时延增大,部分业务请求失败,甚至会由于部分业务压力过大而影响整个系统性能。
[0005]为此,提出了隶属于服务质量(Quality of Service, QoS)的优先级处理机制,通过将各类业务按照重要性分类,为重要性相对较高的业务指定较高的优先级,重要性相对较低的业务指定较低的优先级,系统根据业务优先级进行处理,保证优先级相对较高的业务更有机会获得系统关键资源,最终达到在系统关键资源不足时,尽量保障相对优先级更高的业务的顺利执行。
[0006]具体地,将业务请求队列划分为多个业务队列,每个业务队列对应具有相同优先级的业务,如图2所示,每个优先级的队列的深度是固定的,所谓队列的深度为该队列可容纳的业务请求数,各个优先级的队列的深度总和等于原业务请求队列的深度。
[0007]该方案中,业务处理模块按照业务请求的优先级分别将各业务请求置于具有相应的优先级的业务队列中,采用调度算法对各优先级的业务队列中的业务请求进行调度处理。
[0008]该方案的缺点在于:在业务处理模块的业务处理压力较小时,各业务均能够获取足够的资源,该情况下各优先级的业务队列中的业务不能并发运行,无法充分发挥系统能力。假设该情况下系统的业务请求均是低优先级,而在优先级低的业务队列中的业务请求的数量达到该业务队列的深度时,将会丢弃后续的业务请求,同时其他优先级的业务队列中可能为空,这无疑会增加业务请求的处理时延。并且,不同优先级的业务请求置于不同优先级的业务队列后,再对各业务队列中的业务请求进行调度,会增加各业务请求等待处理的时长。


【发明内容】

[0009]本发明实施例提供一种业务请求处理方法及装置,用以避免系统资源不足时,业务间资源抢夺导致的业务执行不畅的问题。
[0010]本发明实施例提供的具体技术方案如下:
[0011]第一方面,本发明实施例提供了一种业务请求处理方法,包括:
[0012]接收新的业务请求;
[0013]确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启用所述缓存队列,将所述新的业务请求加入所述缓存队列;
[0014]从所述缓存队列中获取所述新的业务请求并处理。
[0015]结合第一方面,在第一种可能的实现方式中,所述方法还包括:
[0016]确定业务处理模块当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将所述新的业务请求加入所述缓存队列。
[0017]结合第一方面,在第二种可能的实现方式中,所述缓存队列包括一个以上子缓存队列,各所述子缓存队列预设有不同的优先级;
[0018]所述确定业务处理模块当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将所述新的业务请求加入所述缓存队列,包括:
[0019]根据预设的业务请求与优先级的对应关系,确定所述新的业务请求的优先级;
[0020]根据所述子缓存队列的优先级与所述新的业务请求的优先级,确定与所述新的业务请求具有等同优先级的第一子缓存队列;
[0021]根据所述新的业务请求的优先级、所述缓存队列能缓存的业务请求的最大数量以及所述缓存队列当前缓存的业务请求的数量,将所述新的业务请求加入所述第一子缓存队列。
[0022]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,根据所述新的业务请求的优先级、所述缓存队列能缓存的业务请求的最大数量以及所述缓存队列当前缓存的业务请求的数量,将所述新的业务请求加入所述第一子缓存队列中,包括:
[0023]若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且所述缓存队列中存在比所述新的业务请求的优先级低的业务请求时,删除具有最低优先级且位于所属子缓存队列末端的业务请求,将所述新的业务请求插入所述第一子缓存队列尾部;
[0024]若确定所述缓存队列当前缓存的业务请求的数量未达到所述最大数量,将所述新的业务请求插入所述第一子缓存队列尾部。
[0025]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
[0026]若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且确定所述缓存队列中不存在比所述新的业务请求的优先级低的业务请求时,丢弃所述新的业务请求。
[0027]结合第一方面,在第五种可能的实现方式中,所述方法还包括:
[0028]从所述缓存队列中获取所述新的业务请求并处理后,若所述缓存队列为空且确定当前剩余的系统资源不低于所述设定阈值,停用所述缓存队列,由业务处理模块处理所述新的业务请求。
[0029]结合第一方面至第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,所述确定业务处理模块当前剩余的系统资源量低于设定阈值,包括:
[0030]统计所述业务处理模块当前处理的业务请求的数量,确定统计结果达到设定值时,确定所述业务处理模块当前剩余的系统资源量低于所述设定阈值;或者
[0031]确定业务请求队列中保存的业务请求的数量达到最大允许数量时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值。
[0032]结合第一方面至第五种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述方法还包括:
[0033]确定剩余的系统资源量不低于所述设定阈值且当前未启用缓存队列时,由业务处理模块处理所述新的业务请求,并统计所述业务处理模块当前处理的业务请求的数量;
[0034]或者,将所述新的业务请求加入业务请求队列的尾部,由业务处理模块从所述业务请求队列的头部获取业务请求进行处理。
[0035]第二方面,本发明实施例提供了一种业务请求处理装置,包括:
[0036]接收模块,用于接收新的业务请求;
[0037]缓存处理模块,用于确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启用所述缓存队列,将所述接收模块接收的所述新的业务请求加入所述缓存队列;
[0038]业务处理模块,用于从所述缓存队列中获取所述新的业务请求并处理。
[0039]结合第二方面,在第一种可能的实现方式中,所述缓存处理模块还用于:
[0040]确定所述业务处理模块当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将所述新的业务请求加入所述缓存队列。
[0041]结合第二方面,在第二种可能的实现方式中,所述缓存队列包括一个以上子缓存队列,各所述子缓存队列预设有不同的优先级;
[0042]所述缓存处理模块具体用于:
[0043]根据预设的业务请求与优先级的对应关系,确定所述新的业务请求的优先级;
[0044]根据所述子缓存队列的优先级与所述新的业务请求的优先级,确定与所述新的业务请求具有等同优先级的第一子缓存队列;
[0045]根据所述新的业务请求的优先级、所述缓存队列能缓存的业务请求的最大数量以及所述缓存队列当前缓存的业务请求的数量,将所述新的业务请求加入所述第一子缓存队列。
[0046]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述缓存处理模块具体用于:
[0047]若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且所述缓存队列中存在比所述新的业务请求的优先级低的业务请求时,删除具有最低优先级且位于所属子缓存队列末端的业务请求,将所述新的业务请求插入所述第一子缓存队列尾部;
[0048]若确定所述缓存队列当前缓存的业务请求的数量未达到所述最大数量,将所述新的业务请求插入所述第一子缓存队列尾部。
[0049]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括丢弃模块,用于:
[0050]若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且确定所述缓存队列中不存在比所述新的业务请求的优先级低的业务请求时,丢弃所述新的业务请求。
[0051]结合第二方面,在第五种可能的实现方式中,所述缓存处理模块还用于:
[0052]在所述业务处理模块从所述缓存队列中获取所述新的业务请求并处理后,若所述缓存队列为空且确定当前剩余的系统资源不低于所述设定阈值,停用所述缓存队列,由所述业务处理模块处理所述新的业务请求。
[0053]结合第二方面至第五种可能的实现方式中的任意中,在第六种可能的实现方式中,所述缓存处理模块具体用于:
[0054]统计所述业务处理模块当前处理的业务请求的数量,确定统计结果达到设定值时,确定所述业务处理模块当前剩余的系统资源量低于所述设定阈值时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值;或者
[0055]确定业务请求队列中保存的业务请求的数量达到最大允许数量时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值。
[0056]结合第二方面至第五种可能的实现方式中的任意中,在第七种可能的实现方式中,所述缓存处理模块具体用于:
[0057]确定剩余的系统资源量不低于所述设定阈值且当前未启用缓存队列时,由所述业务处理模块处理所述新的业务请求,并统计所述业务处理模块当前处理的业务请求的数量;
[0058]或者,将所述新的业务请求加入业务请求队列的尾部,由所述业务处理模块从所述业务请求队列的头部获取业务请求进行处理。
[0059]基于上述技术方案,本发明实施例中,在确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启动该附加缓存队列,以将新的业务请求加入缓存队列,避免了在系统资源不足时各业务间资源抢夺导致的业务执行不畅的问题,并可避免直接丢弃新的业务请求,提高了业务处理效率和业务处理能力。

【专利附图】

【附图说明】
[0060]图1为现有的分布式业务请求处理系统示意图;
[0061]图2为现有的业务请求队列结构示意图;
[0062]图3为本发明实施例中业务处理的方法流程示意图;
[0063]图4为本发明实施例中附加缓存队列结构示意图;
[0064]图5为本发明实施例中附加缓存队列划分优先级的结构示意图;
[0065]图6为本发明实施例中业务请求处理流程示意图;
[0066]图7为本发明实施例中业务请求队列与附加缓存队列结构示意图;
[0067]图8为本发明实施例中另一业务请求处理流程示意图;
[0068]图9为本发明实施例中业务请求处理装置结构示意图。

【具体实施方式】
[0069]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0070]本发明实施例中,如图3所示,进行业务请求处理的详细方法流程如下:
[0071]步骤301:接收新的业务请求。
[0072]具体地,该新的业务请求由业务发起模块发起。
[0073]步骤302:确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启用缓存队列,将该新的业务请求加入该缓存队列。
[0074]具体地,可以是创建缓存队列后,在确定业务处理模块当前剩余的系统资源量低于设定阈值时启用该缓存队列;也可以是,在确定业务处理模块当前剩余的系统资源量低于设定阈值时创建一条缓存队列并启用。
[0075]优选地,确定业务处理模块当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将该新的业务请求加入该缓存队列。
[0076]优选地,缓存队列包括一个以上子缓存队列,各子缓存队列预设有不同的优先级。例如,缓存队列包括三个子缓存队列,分别为高优先级的子缓存队列、中优先级的子缓存队列和低优先级的子缓存队列。
[0077]该优选地实施方式中,将新的业务请求加入缓存队列的具体过程如下:
[0078]根据预设的业务请求与优先级的对应关系,确定新的业务请求的优先级;
[0079]根据子缓存队列的优先级与该新的业务请求的优先级,确定与该新的业务请求具有等同优先级的第一子缓存队列;
[0080]根据该新的业务请求的优先级、该缓存队列能缓存的业务请求的最大数量以及该缓存队列当前缓存的业务请求的数量,将该新的业务请求加入该第一子缓存队列。
[0081]具体地,若确定该缓存队列当前缓存的业务请求的数量达到该缓存队列能缓存的业务请求的最大数量,且该缓存队列中存在比该新的业务请求的优先级低的业务请求时,删除具有最低优先级且位于所属子缓存队列末端的业务请求,将该新的业务请求插入该第一子缓存队列尾部;
[0082]若确定该缓存队列当前缓存的业务请求的数量未达到该缓存队列能缓存的业务请求的最大数量,将该新的业务请求插入该第一子缓存队列尾部。
[0083]优选地,若确定该缓存队列当前缓存的业务请求的数量达到该缓存队列能缓存的业务请求的最大数量,且确定该缓存队列中不存在比该新的业务请求的优先级低的业务请求时,丢弃该新的业务请求。
[0084]优选地,确定业务处理模块当前剩余的系统资源量是否低于设定阈值包括但不限于以下两种具体实现方式中的任意一种:
[0085]第一种实现方式中,统计所述业务处理模块当前处理的业务请求的数量,确定统计结果达到设定值时,确定所述业务处理模块当前剩余的系统资源量低于所述设定阈值时,确定业务处理模块当前剩余的系统资源量低于设定阈值;确定统计结果未达到设定值时,确定业务处理模块当前剩余的系统资源量不低于设定阈值。
[0086]第二种实现方式中,确定业务请求队列中保存的业务请求的数量达到最大允许数量时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值时,确定业务处理模块当前剩余的系统资源量低于设定阈值;确定业务请求队列中保存的业务请求的数量未达到最大允许数量时,确定业务处理模块当前剩余的系统资源量不低于设定阈值。
[0087]步骤303:从缓存队列中获取该新的业务请求并处理。
[0088]优选地,从缓存队列中获取该新的业务请求并处理后,若该缓存队列为空且确定当前剩余的系统资源不低于设定阈值,停用该缓存队列,由业务处理模块处理该新的业务请求。
[0089]优选地,确定剩余的系统资源量不低于所述设定阈值且当前未启用缓存队列时,包括但不限于以下两种处理方式中的任意一种:
[0090]第一种处理方式中,相应于步骤302中确定业务处理模块当前剩余的系统资源量是否低于设定阈值的第一种实现方式,由业务处理模块直接处理该新的业务请求,并统计该业务处理模块当前处理的业务请求的数量;
[0091]第二种处理方式中,相应于步骤302中确定业务处理模块当前剩余的系统资源量是否低于设定阈值的第二种实现方式,将该新的业务请求加入业务请求队列的尾部,由业务处理模块从该业务请求队列的头部获取业务请求进行处理。
[0092]以下通过两个具体实施例对本发明实施例中的业务请求处理的过程进行详尽说明。
[0093]第一具体实施例中,如图4所示,在系统业务资源充足且缓存队列中为空时,采用虚拟的业务请求队列,即业务请求发送至业务处理模块之后业务处理模块立即执行该业务请求,并统计业务处理模块当前处理的业务请求的数量。在系统资源充足的请求下,直接处理到来的业务请求,无需对业务请求进行调度,避免了调度业务请求导致的时延,不同优先级的业务请求具有相同的资源使用权限,不会影响各业务请求的并发度。
[0094]该具体实施例中,业务处理模块当前处理的业务请求的数量表示当前占用的系统资源,并根据业务处理模块当前处理的业务请求的数量确定系统剩余资源。若根据业务处理模块当前处理的业务请求的数量确定系统剩余资源充足时,业务处理模块在接收到新的业务请求后,立即执行该新的业务请求。
[0095]在业务资源不足时,启用附加的缓存队列,将新的业务请求缓存至缓存队列,以避免直接丢弃业务请求所导致的业务发起模块频繁发起业务请求,进而导致业务请求处理时延的增加。
[0096]可选地,将缓存队列划分为多个具有不同优先级的子缓存队列,例如,如图5所示,按照优先级高、中、低将缓存队列划分为三个子缓存队列,不限制每个子缓存队列能保存的业务请求的数量,但是各子缓存队列能保存的业务请求的数量之和不超过缓存队列能保存的业务请求的最大数量。
[0097]在业务处理模块当前剩余的系统资源量不足时,启用缓存队列,业务发起模块发起的业务请求在到达业务处理模块后,由业务处理模块根据预设的业务请求与优先级的对应关系,确定业务请求的优先级并将该业务请求保存至与该业务请求具有等同优先级的子缓存队列中。
[0098]如果缓存队列中缓存的业务请求的数量达到该缓存队列能缓存的业务请求的最大数量,且新到来的业务请求的优先级不低于缓存队列中缓存的业务请求中的最低优先级,则从该最低优先级的业务请求所属的子缓存队列的尾部删除一个业务请求,并将该新到来的业务请求插入与该新到来的业务请求具有等同优先级的子缓存队列的尾部。
[0099]如果缓存队列中缓存的业务请求的数量达到缓存队列能保存的业务请求的最大数量,且新到来的业务请求的优先级不高于该缓存队列中缓存的各业务请求的优先级,直接丢弃该新到来的业务请求。
[0100]业务处理模块在开始处理缓存队列中的业务请求时,按照各子缓存队列的优先级顺次执行各子缓存队列中的业务请求,在处理每个子缓存队列时,逐次从该子缓存队列的尾部获取业务请求并处理,在该子缓存队列中的业务请求处理完毕后,按照相同的方法处理比该子缓存队列的优先级低的子缓存队列中的业务请求。
[0101]以下对一个业务请求的具体处理过程进行说明,如图6所示,具体如下:
[0102]步骤601:由业务处理模块发起的业务请求到达业务处理模块;
[0103]步骤602:根据业务处理模块当前处理的业务请求的数量,确定当前处理的业务请求的数量已达到业务处理模块能够处理的业务请求的最大数量,则确定业务处理模块的资源已使用完,转去执行步骤603,否则,确定业务处理模块的资源未使用完,转去执行步骤604 ;
[0104]步骤603:业务处理模块判断缓存队列是否为空,若为空,转去执行步骤605,否贝U,执行步骤606 ;
[0105]步骤604:系统资源未使用完,立即执行该业务请求,流程结束;
[0106]步骤605:系统资源已使用完,根据业务请求的优先级,将业务请求插入缓存队列中与该业务请求的优先级一致的子缓存队列的尾部,流程结束;
[0107]步骤606:若缓存队列不为空,判断缓存队列是否已满,若未满,转去执行步骤607,否则,转去执行步骤608 ;
[0108]步骤607:根据业务请求的优先级,将该业务请求插入到缓存队列中与该业务请求具有等同优先级的子缓存队列的尾部,流程结束;
[0109]步骤608:若缓存队列已满,判断业务请求的优先级是否为最低级low,若为low,则转去执行步骤609,否则,转去执行步骤610 ;
[0110]步骤609:丢弃该业务请求,流程结束;
[0111]步骤610:若业务请求的优先级不是最低级,而是中间级medium,转去执行步骤611,若业务请求的优先级为高级high,转去执行步骤615 ;
[0112]步骤611:在业务请求的优先级为medium时,判断low优先级的子缓存队列是否为空,若为空,转去执行步骤612,否则,转去执行步骤613;
[0113]步骤612:丢弃该业务请求,流程结束;
[0114]步骤613:丢弃具有low优先的子缓存队列的尾部的业务请求;
[0115]步骤614:将业务请求加入具有medium优先级的子缓存队列的尾部,流程结束;
[0116]步骤615:判断具有low优先级的子缓存队列是否为空,若不为空,转去执行步骤616,否则,转去执行步骤618 ;
[0117]步骤616:将具有low优先级的子缓存队列的尾部的业务请求丢弃;
[0118]步骤617:将业务请求加入具有high优先级的子缓存队列的尾部,流程结束;
[0119]步骤618:若具有low优先级的子缓存队列为空,判断具有medium优先级的子缓存队列是否为空,若为空,转去执行步骤619,否则,执行步骤620 ;
[0120]步骤619:丢弃该业务请求,流程结束;
[0121]步骤620:将具有medium优先级的子缓存队列的尾部的业务请求丢弃;
[0122]步骤621:将业务请求插入到具有high优先级的子缓存队列的尾部,流程结束。
[0123]第二具体实施例中,如图7所示,在系统业务资源充足且缓存队列为空时,采用业务请求队列,即业务处理模块在接收到业务请求后,将该业务请求保存至业务请求队列中,在业务请求队列中保存的业务请求的数量达到该业务请求队列能保存的业务请求的最大数量后,启用缓存队列,将新到来的业务请求保存至该缓存队列。
[0124]在业务处理模块剩余的系统资源充足时,业务请求队列中包含的各业务请求具有相同的资源使用权限,不影响各业务请求的并发度;在业务处理模块剩余的系统资源不足时,启用缓存队列,将新到来的业务请求保存至该缓存队列,以避免直接丢弃业务请求所导致的业务发起模块频繁发起业务请求,达到降低业务请求处理时延的效果。
[0125]可选地,与第一具体实施例相同,将缓存队列划分为多个具有不同优先级的子缓存队列。
[0126]在业务处理模块当前剩余的系统资源量不足时,启用缓存队列,业务发起模块发起的业务请求在到达业务处理模块后,由业务处理模块根据预设的业务请求与优先级的对应关系,确定业务请求的优先级并将该业务请求保存至与该业务请求具有等同优先级的子缓存队列中。
[0127]如果缓存队列中缓存的业务请求的数量达到该缓存队列能缓存的业务请求的最大数量,且新到来的业务请求的优先级不低于缓存队列中缓存的业务请求中的最低优先级,则从该最低优先级的业务请求所属的子缓存队列的尾部删除一个业务请求,并将该新到来的业务请求插入与该新到来的业务请求具有等同优先级的子缓存队列的尾部。
[0128]如果缓存队列中缓存的业务请求的数量达到缓存队列能保存的业务请求的最大数量,且新到来的业务请求的优先级不高于该缓存队列中缓存的各业务请求的优先级,直接丢弃该新到来的业务请求。
[0129]业务处理模块在开始处理缓存队列中的业务请求时,按照各子缓存队列的优先级顺次执行各子缓存队列中的业务请求,在处理每个子缓存队列时,逐次从该子缓存队列的尾部获取业务请求并处理,在该子缓存队列中的业务请求处理完毕后,按照相同的方法处理比该子缓存队列的优先级低的子缓存队列中的业务请求。
[0130]该具体实施例中对一个业务请求的具体处理过程可参见图8所示,与第一具体实施例中一个业务请求的具体处理过程基本相同,具体为:
[0131]步骤801:由业务处理模块发起的业务请求到达业务处理模块;
[0132]步骤802:根据业务请求队列是否已满判断业务处理模块的资源是否使用完,若业务请求队列已满,则确定业务处理模块的系统资源已使用完,转去执行步骤803,否则,确定业务处理模块的系统资源未使用完,转去执行步骤804 ;
[0133]步骤803:业务处理模块判断缓存队列是否为空,若为空,转去执行步骤805,否贝U,执行步骤806 ;
[0134]步骤804:系统资源未使用完,将该业务请求插入业务请求队列的尾部,结束流程;
[0135]步骤805:系统资源已使用完,根据业务请求的优先级,将业务请求插入缓存队列中与该业务请求具有等同优先级的子缓存队列的尾部,流程结束;
[0136]步骤806-步骤821与上述步骤606-步骤621完全相同,此处不再赘述。
[0137]基于同一发明构思,本发明实施例中,还提供了一种业务处理装置,该装置的具体实施可参见上述方法部分的描述,重复之处不再赘述,如图9所示,该装置主要包括:
[0138]接收模块901,用于接收新的业务请求;
[0139]缓存处理模块902,用于确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启用所述缓存队列,将所述接收模块接收的所述新的业务请求加入所述缓存队列;
[0140]业务处理模块903,用于从所述缓存队列中获取所述新的业务请求并处理。
[0141]优选地,所述缓存处理模块902还用于:
[0142]确定所述业务处理模块903当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将所述新的业务请求加入所述缓存队列。
[0143]优选地,所述缓存队列包括一个以上子缓存队列,各所述子缓存队列预设有不同的优先级;
[0144]所述缓存处理模块902将新的业务请求加入缓存队列的具体过程如下:
[0145]根据预设的业务请求与优先级的对应关系,确定所述新的业务请求的优先级;
[0146]根据所述子缓存队列的优先级与所述新的业务请求的优先级,确定与所述新的业务请求具有等同优先级的第一子缓存队列;
[0147]根据所述新的业务请求的优先级、所述缓存队列能缓存的业务请求的最大数量以及所述缓存队列当前缓存的业务请求的数量,将所述新的业务请求加入所述第一子缓存队列。
[0148]优选地,不限制每个子缓存队列能保存的业务请求的数量,每个子缓存队列能保存业务请求的数量的和不超过缓存队列能保存的业务请求的最大数量。
[0149]相应于该优选地实施方式,所述缓存处理模块902具体用于:
[0150]若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且所述缓存队列中存在比所述新的业务请求的优先级低的业务请求时,删除具有最低优先级且位于所属子缓存队列末端的业务请求,将所述新的业务请求插入所述第一子缓存队列尾部;
[0151]若确定所述缓存队列当前缓存的业务请求的数量未达到所述最大数量,将所述新的业务请求插入所述第一子缓存队列尾部。
[0152]优选地,还包括丢弃模块904,用于:
[0153]若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且确定所述缓存队列中不存在比所述新的业务请求的优先级低的业务请求时,丢弃所述新的业务请求。
[0154]优选地,所述缓存处理模块902还用于:
[0155]在所述业务处理模块从所述缓存队列中获取所述新的业务请求并处理后,若所述缓存队列为空且确定当前剩余的系统资源不低于所述设定阈值,停用所述缓存队列,由所述业务处理模块处理所述新的业务请求。
[0156]优选地,所述缓存处理模块902确定业务处理模块当前剩余的系统资源量是否低于设定阈值包括但不限于以下两种具体实现方式中的任意一种:
[0157]第一种实现方式中,统计所述业务处理模块当前处理的业务请求的数量,确定统计结果达到设定值时,确定所述业务处理模块当前剩余的系统资源量低于所述设定阈值时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值;确定统计结果未达到设定值时,确定业务处理模块当前剩余的系统资源量不低于设定阈值。
[0158]第二种实现方式中,确定业务请求队列中保存的业务请求的数量达到最大允许数量时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值;确定业务请求队列中保存的业务请求的数量未达到最大允许数量时,确定业务处理模块当前剩余的系统资源量不低于设定阈值。
[0159]优选地,所述缓存处理模块902确定剩余的系统资源量不低于所述设定阈值且当前未启用缓存队列时,包括但不限于以下两种处理方式中的任意一种:
[0160]第一种处理方式中,相应于确定业务处理模块当前剩余的系统资源量是否低于设定阈值的第一种实现方式,由所述业务处理模块处理所述新的业务请求,并统计所述业务处理模块当前处理的业务请求的数量;
[0161]第二种处理方式中,相应于确定业务处理模块当前剩余的系统资源量是否低于设定阈值的第二种实现方式,将所述新的业务请求加入业务请求队列的尾部,由所述业务处理模块从所述业务请求队列的头部获取业务请求进行处理。
[0162]基于同一发明构思,本发明实施例中,还提供了一种设备,该设备包括存储器和处理器,其中,
[0163]存储器,用于提供缓存队列,以保存业务请求;
[0164]处理器,用于接收新的业务请求,确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启用所述缓存队列,将所述新的业务请求加入所述缓存队列,从所述缓存队列中获取所述新的业务请求并处理。
[0165]优选地,处理器确定确定业务处理模块当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将所述新的业务请求加入所述缓存队列
[0166]优选地,所述缓存队列包括一个以上子缓存队列,各所述子缓存队列预设有不同的优先级;
[0167]处理器根据预设的业务请求与优先级的对应关系,确定所述新的业务请求的优先级;根据所述子缓存队列的优先级与所述新的业务请求的优先级,确定与所述新的业务请求具有等同优先级的第一子缓存队列;根据所述新的业务请求的优先级、所述缓存队列能缓存的业务请求的最大数量以及所述缓存队列当前缓存的业务请求的数量,将所述新的业务请求加入所述第一子缓存队列。
[0168]具体地,处理器若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且所述缓存队列中存在比所述新的业务请求的优先级低的业务请求时,删除具有最低优先级且位于所属子缓存队列末端的业务请求,将所述新的业务请求插入所述第一子缓存队列尾部;
[0169]若确定所述缓存队列当前缓存的业务请求的数量未达到所述最大数量,将所述新的业务请求插入所述第一子缓存队列尾部。
[0170]优选地,处理器若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且确定所述缓存队列中不存在比所述新的业务请求的优先级低的业务请求时,丢弃所述新的业务请求。
[0171]优选地,从所述缓存队列中获取所述新的业务请求并处理后,若所述缓存队列为空且确定当前剩余的系统资源不低于所述设定阈值,停用所述缓存队列,由业务处理模块处理所述新的业务请求。
[0172]优选地,处理器确定业务处理模块当前剩余的系统资源量是否低于设定阈值,包括但不限于以下两种实现方式中的任意一种:
[0173]第一种实现方式,统计所述业务处理模块当前处理的业务请求的数量,确定统计结果达到设定值时,确定所述业务处理模块当前剩余的系统资源量低于所述设定阈值;确定统计结果未达到设定值时,确定所述业务处理模块当前剩余的系统资源量不低于所述设定阈值时。
[0174]第二种实现方式,确定业务请求队列中保存的业务请求的数量达到最大允许数量时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值;确定业务请求队列中保存的业务请求的数量未达到最大允许数量时,确定所述业务处理模块当前剩余的系统资源量不低于设定阈值。
[0175]优选地,处理器确定剩余的系统资源量不低于所述设定阈值且当前未启用缓存队列时,包括但不限于以下两种处理方式中的任意一种:
[0176]第一种处理方式,相应于确定业务处理模块当前剩余的系统资源量是否低于设定阈值的第一种实现方式,由业务处理模块处理所述新的业务请求,并统计所述业务处理模块当前处理的业务请求的数量;
[0177]第二种处理方式,相应于确定业务处理模块当前剩余的系统资源量是否低于设定阈值的第二种实现方式,将所述新的业务请求加入业务请求队列的尾部,由业务处理模块从所述业务请求队列的头部获取业务请求进行处理。
[0178]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0179]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0180]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0181]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0182]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种业务请求处理方法,其特征在于,包括: 接收新的业务请求; 确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启用所述缓存队列,将所述新的业务请求加入所述缓存队列; 从所述缓存队列中获取所述新的业务请求并处理。
2.如权利要求1所述的方法,其特征在于,所述方法还包括: 确定业务处理模块当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将所述新的业务请求加入所述缓存队列。
3.如权利要求1所述的方法,其特征在于,所述缓存队列包括一个以上子缓存队列,各所述子缓存队列预设有不同的优先级; 所述确定业务处理模块当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将所述新的业务请求加入所述缓存队列,包括: 根据预设的业务请求与优先级的对应关系,确定所述新的业务请求的优先级; 根据所述子缓存队列的优先级与所述新的业务请求的优先级,确定与所述新的业务请求具有等同优先级的第一子缓存队列; 根据所述新的业务请求的优先级、所述缓存队列能缓存的业务请求的最大数量以及所述缓存队列当前缓存的业务请求的数量,将所述新的业务请求加入所述第一子缓存队列。
4.如权利要求3所述的方法,其特征在于,根据所述新的业务请求的优先级、所述缓存队列能缓存的业务请求的最大数量以及所述缓存队列当前缓存的业务请求的数量,将所述新的业务请求加入所述第一子缓存队列中,包括: 若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且所述缓存队列中存在比所述新的业务请求的优先级低的业务请求时,删除具有最低优先级且位于所属子缓存队列末端的业务请求,将所述新的业务请求插入所述第一子缓存队列尾部; 若确定所述缓存队列当前缓存的业务请求的数量未达到所述最大数量,将所述新的业务请求插入所述第一子缓存队列尾部。
5.如权利要求4所述的方法,其特征在于,所述方法还包括: 若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且确定所述缓存队列中不存在比所述新的业务请求的优先级低的业务请求时,丢弃所述新的业务请求。
6.如权利要求1所述的方法,其特征在于,所述方法还包括: 从所述缓存队列中获取所述新的业务请求并处理后,若所述缓存队列为空且确定当前剩余的系统资源不低于所述设定阈值,停用所述缓存队列,由业务处理模块处理所述新的业务请求。
7.如权利要求1-6任一项所述的方法,其特征在于,所述确定业务处理模块当前剩余的系统资源量低于设定阈值,包括: 统计所述业务处理模块当前处理的业务请求的数量,确定统计结果达到设定值时,确定所述业务处理模块当前剩余的系统资源量低于所述设定阈值;或者 确定业务请求队列中保存的业务请求的数量达到最大允许数量时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值。
8.如权利要求1-6任一项所述的方法,其特征在于,所述方法还包括: 确定剩余的系统资源量不低于所述设定阈值且当前未启用缓存队列时,由业务处理模块处理所述新的业务请求,并统计所述业务处理模块当前处理的业务请求的数量; 或者,将所述新的业务请求加入业务请求队列的尾部,由业务处理模块从所述业务请求队列的头部获取业务请求进行处理。
9.一种业务请求处理装置,其特征在于,包括: 接收模块,用于接收新的业务请求; 缓存处理模块,用于确定业务处理模块当前剩余的系统资源量低于设定阈值且当前未启用缓存队列时,启用所述缓存队列,将所述接收模块接收的所述新的业务请求加入所述缓存队列; 业务处理模块,用于从所述缓存队列中获取所述新的业务请求并处理。
10.如权利要求9所述的装置,其特征在于,所述缓存处理模块还用于: 确定所述业务处理模块当前剩余的系统资源量低于设定阈值且当前已启用缓存队列时,将所述新的业务请求加入所述缓存队列。
11.如权利要求9所述的装置,其特征在于,所述缓存队列包括一个以上子缓存队列,各所述子缓存队列预设有不同的优先级; 所述缓存处理模块具体用于: 根据预设的业务请求与优先级的对应关系,确定所述新的业务请求的优先级; 根据所述子缓存队列的优先级与所述新的业务请求的优先级,确定与所述新的业务请求具有等同优先级的第一子缓存队列; 根据所述新的业务请求的优先级、所述缓存队列能缓存的业务请求的最大数量以及所述缓存队列当前缓存的业务请求的数量,将所述新的业务请求加入所述第一子缓存队列。
12.如权利要求11所述的装置,其特征在于,所述缓存处理模块具体用于: 若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且所述缓存队列中存在比所述新的业务请求的优先级低的业务请求时,删除具有最低优先级且位于所属子缓存队列末端的业务请求,将所述新的业务请求插入所述第一子缓存队列尾部; 若确定所述缓存队列当前缓存的业务请求的数量未达到所述最大数量,将所述新的业务请求插入所述第一子缓存队列尾部。
13.如权利要求12所述的装置,其特征在于,还包括丢弃模块,用于: 若确定所述缓存队列当前缓存的业务请求的数量达到所述最大数量,且确定所述缓存队列中不存在比所述新的业务请求的优先级低的业务请求时,丢弃所述新的业务请求。
14.如权利要求9所述的装置,其特征在于,所述缓存处理模块还用于: 在所述业务处理模块从所述缓存队列中获取所述新的业务请求并处理后,若所述缓存队列为空且确定当前剩余的系统资源不低于所述设定阈值,停用所述缓存队列,由所述业务处理模块处理所述新的业务请求。
15.如权利要求9-14任一项所述的装置,其特征在于,所述缓存处理模块具体用于: 统计所述业务处理模块当前处理的业务请求的数量,确定统计结果达到设定值时,确定所述业务处理模块当前剩余的系统资源量低于所述设定阈值时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值;或者 确定业务请求队列中保存的业务请求的数量达到最大允许数量时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值时,确定所述业务处理模块当前剩余的系统资源量低于设定阈值。
16.如权利要求9-14任一项所述的装置,其特征在于,所述缓存处理模块具体用于:确定剩余的系统资源量不低于所述设定阈值且当前未启用缓存队列时,由所述业务处理模块处理所述新的业务请求,并统计所述业务处理模块当前处理的业务请求的数量;或者,将所述新的业务请求加入业务请求队列的尾部,由所述业务处理模块从所述业务请求队列的头部获取业务请求进行处理。
【文档编号】H04L12/865GK104202261SQ201410429073
【公开日】2014年12月10日 申请日期:2014年8月27日 优先权日:2014年8月27日
【发明者】蔡俊, 丁岩 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1