一种请求处理方法及装置的制造方法_2

文档序号:9249206阅读:来源:国知局
对等待队列中的请求进行合并处理,并执行合并后的请求,有效减少了请求的重复执行,减小了数据库I/o压力,减轻了系统负担。
[0054]为了使本领域技术人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055]参见图1所示,为本发明实施例所提供的请求处理方法的一种实施流程图,该方法可以包括以下步骤:
[0056]SllO:检测是否接收到同步请求或第一定时器是否达到预设阈值。
[0057]在实际应用中,计算机系统的接口不断接收同步请求或异步请求。对于接口接收到的同步请求,计算机系统需要对其进行及时处理。而对于接收到的异步请求,计算机系统可以通过设置第一定时器定期对其进行处理。计算机系统需要不断检测是否接收到了同步请求或者第一定时器是否达到了预设阈值。这里预设阈值可以根据实际情况进行设定和调整,比如设置为2秒。
[0058]S120:当接收到同步请求或所述第一定时器达到预设阈值时,提取等待队列中的所有请求。
[0059]可以理解的是,对于某个计算机系统来说,其接口接收到的请求所对应的任务是相同或相似的。仍以计数器系统为例,其接口接收到的请求可能都是给当前计数器+1,对于这些请求,尤其是异步请求,没有必要逐一进行处理。当接口接收到请求时,可以调用请求存储进程先将请求存入等待队列,等待提取。
[0060]在步骤SllO检测过程中,如果接口接收到同步请求,则可以触发请求提取进程,即提取等待队列中的所有请求。此时,等待队列中的请求除了该同步请求外,可能还包含一个或多个异步请求。
[0061]如果在一定的时间长度内,没有接收到同步请求,第一定时器达到了预设阈值,则也可以触发请求提取进程,提取等待队列中的所有请求。此时,等待队列中的请求可能包含一个或多个异步请求。
[0062]在本发明的一种【具体实施方式】中,等待队列中的每个请求可以为:等待队列的状态为解锁状态时存入的请求。也就是说,在不同时机,等待队列具有不同的状态。在提取等待队列中的所有请求之前,可以先将等待队列的状态修改为锁定状态,在提取等待队列中的所有请求之后,再将等待队列的状态修改为解锁状态。这样,当等待队列的状态为锁定状态时,无法将新接收到的请求存入到等待队列中,避免出现提取过程中有部分请求未完全存入而导致的提取错误的问题。
[0063]在实际应用中,如果等待队列的状态为锁定状态,请求存储进程无法将请求存入等待队列中,需要等待,等待的时长可以通过设置的第二定时器监控,当第二定时器达到预设阈值时,再次判断等待队列的状态。需要说明的是,第二定时器所对应的预设阈值可以根据实际情况进行设定和调整,比如设置为I秒。第一定时器所对应的预设阈值和第二定时器所对应的预设阈值可以相等也可以不相等。
[0064]在实际应用中,在存入等待队列的请求为异步请求的情况下,可以向该异步请求的发送方返回接收确认信息,即通知该异步请求的发送方其所发送的异步请求已被成功接收。
[0065]S130:将提取的所有请求进行合并,并执行合并后的请求。
[0066]如前所述,对于某个计算机系统来说,其接口接收到的请求所对应的任务是相同或相似的,对于这些请求,尤其是异步请求,没有必要逐一进行处理。所以,在步骤S120提取到所有的请求后,可以对提取的所有请求进行合并,具体的合并方法可以根据该计算机系统所对应的具体业务进行确定。
[0067]以计数器系统为例对此进行说明。
[0068]假设计数器系统的接口接收到的同步请求或异步请求均为对当前的计数数值+1,当前等待队列中共有5个异步请求。分为两种情况对请求合并的过程进行描述:
[0069]第一种情况,当接口再接收到一个同步请求时,调用请求存储进程将该同步请求存入等待队列后,请求提取进程提取到的等待队列中的所有请求共6个,将提取的这6个请求进行合并,合并后的请求即为:对当前的计数数值+6 ;
[0070]第二种情况,当第一定时器达到了预设阈值时,请求提取进程提取到的等待队列中的所有请求共5个,将提取的这5个请求进行合并,合并后的请求即为:对当前的计数数值+5。
[0071]将提取的所有请求进行合并后,调用任务执行进程执行合并后的请求。
[0072]在实际应用中,当提取的请求中包含同步请求时,对提取的所有请求进行合并,并执行合并后的请求之后,还可以向所提取的同步请求的发送方返回执行结果信息,以便该同步请求的发送方可以继续进行下一步的操作。
[0073]在本发明的一个实施例中,在提取等待队列中的所有请求之前,该方法还可以包括:
[0074]判断执行合并后的请求的任务执行进程是否为锁定状态,如果否,则执行提取步骤,即提取等待队列中的所有请求。
[0075]可以理解的是,在计算机系统中,如果执行合并后的请求的任务执行进程处于高负荷工作状态,可能无法再处理新的合并后的请求,即使将等待队列中的请求提取出来,也无法进行及时处理。在实际应用中,可以将任务执行进程达到某百分比负荷时将其设定为锁定状态,在提取等待队列中的所有请求之前,可以先判断该任务执行进程是否为锁定状态,如果不是锁定状态,则可以继续执行提取步骤,提取等待队列中的所有请求,如果处于锁定状态,则先不执行提取步骤,等待第一定时器到达预设阈值或再次接收到一个同步请求时,重复执行判断该任务执行进程是否为锁定状态的步骤。
[0076]在本发明的一种【具体实施方式】中,当任务执行进程为锁定状态时,先不执行提取步骤,可以将第一定时器清零,当第一定时器再次达到预设阈值或者再次接收到一个同步请求时,重复执行判断该任务执行进程是否为锁定状态的步骤。
[0077]参见图2所示,为本发明实施例所提供的请求处理方法的实施流程图,该方法具体可以包括以下步骤:
[0078]S201:接收请求;
[0079]S202:判断等待队列是否为锁定状态,如果是,则重复执行步骤S202,如果否,则执行步骤S203 ;
[0080]S203:将接收到的请求存入等待队列;
[0081]S204:判断该请求是同步请求还是异步请求,如果是同步请求,则执行步骤S206,如果是异步请求,则执行步骤S211 ;
[0082]S205:判断第一定时器是否达到预设阈值,如果是,则执行步骤S206,如果否,则重复执行步骤S205 ;
[0083]S206:判断任务执行进程是否为锁定状态,如果是,则执行步骤S205,如果否,则执行步骤S207 ;
[0084]S207:将等待队列的状态修改为锁定状态;
[0085]S208:提取等待队列中的所有请求;
[0086]S209:将等待队列的状态修改为解锁状态;
[0087]S210:将提取的所有请求进行合并,并执行合并后的请求;
[0088]S211:返回请求。
[0089]应用本发明实施例所提供的技术方案,计算机系统对于其接口接收到的请求并不逐一进行处理,而是先存入等待队列,当接收到的请求为同步请求或者第一定时器达到预设阈值时,再对等待队列中的请求进行合并处理,并执行合并后的请求,有效减少了请求的重复执行,减小了数据库I
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1