[发明专利]客户端请求的超时处理方法和装置有效
申请号: | 201610890659.8 | 申请日: | 2016-10-12 |
公开(公告)号: | CN107948224B | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 韩松 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 孙清然;王琦 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 客户端 请求 超时 处理 方法 装置 | ||
本申请公开了一种客户端请求的超时处理方法和装置,方法包括:服务端将当前接收到的每个连接请求封装成任务,并添加到待处理请求任务池以及与任务的时延阈值对应的超时监测队列中,服务端中的超时监测队列与所支持的时延阈值一一对应,每个超时监测队列中的任务按照超时时刻升序排列;在待处理请求任务池非空时从中取出任务,触发根据任务状态对任务的执行过程;对于每个超时监测队列,按照预设的超时扫描周期,查找出队列中的超时任务并删除,并在超时任务处于未处理状态时将超时任务放入超时处理线程池;在超时处理线程池非空时从中取出超时任务,并触发根据任务状态对任务的超时处理过程。采用本发明,可以及时处理超时请求。
技术领域
本发明涉及计算机应用技术,特别是涉及一种客户端请求的超时处理方法和装置。
背景技术
随着互联网的快速发展,WEB应用系统数量的不断增加,随之而来的分布式系统的出现,导致各种系统之间业务的交集,都会涉及系统之间接口的相互调用。特别是涉及不同公司的系统,如购物系统和仓库系统之间、购物系统和支付系统等。而外部系统与内部系统之间的交互一般都是采用HTTP接口的方式,伴随用户数量的日益增长,接口之间交互次数也在不断增加,相应地,也增加了系统的访问压力。该情况下,当连接请求到达服务端后,就会存在由于到达服务端的请求数量较多,而出现处理请求时间过长、不能及时响应客户端请求的请求超时情况。
现有针对请求超时的处理方案中,对于每个请求队列,会有定时线程扫描该队列,对于队列中的每个请求根据该请求的超时处理时间判断当前该请求是否已超时,如果是,则将其从队列中删除掉,同时,将请求处理超时通知给相应的客户端。并且,为了保持请求队列的连续性,会对删除了超时请求后的队列进行处理。具体处理方式可以为:对原队列中的各请求进行位置的调整,也可以是,新建一队列将原队列中的未超时请求拷贝至该新建队列中,如此,可以使得调整后的队列中数据具有连续性。如图1所示,请求列表1是时间T1时的请求队列,其中的每个数据代表一个请求,将其中的超时请求(数据3、数据4、数据8和数据9)删除后,重新对请求列表1对应的队列中的数据进行位置的调整或采用新建队列并拷贝原队列中有效数据的方式,可以得到请求列表2所示的队列结果。
在上述超时处理方案中,由于队列中不同请求的超时时刻可能是不同的且和请求在队列中的先后顺序无关,也就是说队列中的任何一个位置的请求都会存在到达超时时刻的情况,因此,定时线程需要遍历整个请求队列,当队列长度达到几万时遍历一遍的时间会很长,再加上每个数据的判断处理时间,就会导致一次队列的超时判断会非常耗时。另外,每个请求队列的长度是有限的,如果超时请求处理的不及时,不能及时将超时的请求从队列中删除,就会出现:由于超时请求的存在而导致队列已满无法添加新请求到队列中的情况,这样,就会导致之后的请求被拒绝,进而造成极差的用户体验。
由此可见,现有的超时处理方案存在请求队列中已超时请求得不到及时处理,影响后续请求的接受,进而影响系统的服务性能的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种客户端请求的超时处理方法和装置,可以及时处理超时请求。
为了达到上述目的,本发明提出的技术方案为:
一种客户端请求的超时处理方法,包括:
服务端将当前接收到的每个连接请求封装成任务,并将所述任务添加到待处理请求任务池以及与任务的时延阈值对应的超时监测队列中,其中,服务端中的所述超时监测队列与所支持的时延阈值一一对应,每个所述超时监测队列中的任务按照超时时刻的升序排列;
所述服务端在所述待处理请求任务池非空时从中取出任务,并触发根据任务的当前处理状态对所取出任务的执行过程;
对于每个所述超时监测队列,所述服务端按照预设的超时扫描周期,查找出队列中的超时任务并删除,并在所述超时任务处于未处理状态时将所述超时任务放入超时处理线程池;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610890659.8/2.html,转载请声明来源钻瓜专利网。