一种请求处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别涉及一种请求处理方法及装置。
【背景技术】
[0002]计算机系统经常需要对其接口接收到的请求进行相应的处理。这些请求有同步请求和异步请求之分。当接口接收到的请求为同步请求时,计算机系统需要对该同步请求进行实时处理;当接口接收到的请求为异步请求时,计算机系统不需要对该异步请求进行实时处理。
[0003]现有技术中,计算机系统对于其接口接收到的请求逐一进行处理,即对于接收到的同步请求,逐一进行实时处理,对于接收到的异步请求,逐一进行非实时处理。
[0004]这种方法存在一定的缺点,因为计算机系统在对其接口接收到的各个请求进行处理的过程中,会引起随机的磁盘读取,而对于某个计算机系统来说,其接口接收到的请求对应的任务是相似的,如一个计数器系统,其接口同时可能接收到较多的并发请求(含同步请求和异步请求),每个请求对应的任务都是给当前计数数值加1,如果对这些请求进行逐一处理,将会导致请求的重复执行,从而增加数据库I/o压力,给系统带来较重的负担。
【发明内容】
[0005]为解决上述问题,本发明实施例公开了一种请求处理方法及装置。技术方案如下:
[0006]一种请求处理方法,包括:
[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]应用本发明实施例所提供的技术方案,计算机系统对于其接口接收到的请求并不逐一进行处理,而是先存入等待队列,当接口接收到的请求为同步请求或者第一定时器达到预设阈值时,再对等待队列中的请求进行合并处理,并执行合并后的请求,有效减少了请求的重复执行,减小了数据库I/o压力,减轻了系统负担。
【附图说明】
[0041]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]图1为本发明实施例中请求处理方法的一种实施流程图;
[0043]图2为本发明实施例中请求处理方法的另一种实施流程图;
[0044]图3为本发明实施例中请求处理装置的一种结构示意图。
【具体实施方式】
[0045]首先对本发明实施例所提供的一种请求处理方法进行说明,该方法可以包括以下步骤:
[0046]检测是否接收到同步请求或第一定时器是否达到预设阈值;
[0047]当接收到同步请求或所述第一定时器达到预设阈值时,提取等待队列中的所有请求;
[0048]将提取的所有请求进行合并,并执行合并后的请求。
[0049]该方法应用在计算机系统上,该计算机系统的接口接收的请求可以是同步请求或异步请求,这些请求可以是该计算机系统自身产生的,还可以是其他系统或终端等发送方发送的。该计算机系统可以包含请求存储进程、请求提取进程和任务执行进程。
[0050]在计算机系统的接口接收到同步请求或异步请求后,可以调用请求存储进程,将接口接收到的请求存入等待队列。
[0051]如果存入等待队列的请求是同步请求,则触发请求提取进程,提取等待队列中的所有请求,此时,等待队列中除了该同步请求,可能还存在一个或多个异步请求。提取到等待队列中的所有请求后,将提取到的请求进行合并,并调用任务执行进程执行合并后的请求。
[0052]如果在一定的时间长度内没有接收到同步请求,而等待队列中已经存储了一个或多个异步请求,为了保证对异步请求的处理,在本发明实施例中可以根据第一定时器是否达到了预设阈值,判断是否触发请求提取进程。当该第一定时器达到预设阈值时,提取等待队列中的所有请求。提取到等待队列中的所有请求后,将提取到的请求进行合并,并调用任务执行进程执行合并后的请求。
[0053]应用本发明实施例所提供的技术方案,计算机系统对于其接收到的请求并不逐一进行处理,而是先存入等待队列,当接收到的请求为同步请求或者第一定时器达到预设阈值时,再