CN113434293A - 处理重复请求的方法和装置、存储介质及电子装置 - Google Patents
处理重复请求的方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN113434293A CN113434293A CN202110725340.0A CN202110725340A CN113434293A CN 113434293 A CN113434293 A CN 113434293A CN 202110725340 A CN202110725340 A CN 202110725340A CN 113434293 A CN113434293 A CN 113434293A
- Authority
- CN
- China
- Prior art keywords
- request
- request information
- current
- information
- time
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 title claims abstract description 41
- 230000006870 function Effects 0.000 claims description 41
- 230000008030 elimination Effects 0.000 claims description 23
- 238000003379 elimination reaction Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004044 response 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种处理重复请求的方法和装置、存储介质及电子装置,其中,方法包括:接收当前次请求信息,并确定当前次请求信息与上次请求信息是否为相同的请求;在当前次请求信息与上次请求信息为相同的请求的情况下,根据当前次请求信息的接收时间与上次请求信息的接收时间之间的时间间隔,确定当前次请求信息是否为重复请求;在当前次请求信息是重复请求的情况下,删除当前次请求信息。采用本方案解决了采用axios处理重复请求的效率较低,不能很好地降低服务器的压力等问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种处理重复请求的方法和装置、存储介质及电子装置。
背景技术
现有技术中的处理重复请求的方案主要有以下两种:
第一种,采用axios处理重复请求的方式是axios官方提供的方式,即通过cancelToken,但该方式只能处理未发送的请求,对于用户网络环境良好的快速请求操作并没有实际性的帮助,例如,对于用户每秒钟请求多次的情况下,不能及时响应;
第二种,通过变量的控制来处理重复的请求,先声明一个变量为false,当请求发起时将该变量变为true,此后如果再次发起请求行为,需要先校验该变量是否为true,如果为true,说明有正在请求的行为,需要取消,只有当请求结束时才将此变量改为false。该方案需要书写重复且相似的代码,比较繁琐。
即现有技术中采用axios处理重复请求的效率较低,不能很好地降低服务器的压力。
针对相关技术中,采用axios处理重复请求的效率较低,不能很好地降低服务器的压力等问题,尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种处理重复请求的方法和装置、存储介质及电子装置,以至少解决相关技术中,采用axios处理重复请求的效率较低,不能很好地降低服务器的压力等问题。
根据本发明实施例的一个实施例,提供了一种处理重复请求的方法,包括:接收当前次请求信息,并确定所述当前次请求信息与上次请求信息是否为相同的请求;在所述当前次请求信息与所述上次请求信息为相同的所述请求的情况下,根据所述当前次请求信息的接收时间与所述上次请求信息的接收时间之间的时间间隔,确定所述当前次请求信息是否为重复请求;在所述当前次请求信息是所述重复请求的情况下,删除所述当前次请求信息。
在一个示例性实施例中,所述方法还包括:在所述当前次请求信息不是所述重复请求的情况下,将所述当前次请求信息发送至服务器。
在一个示例性实施例中,根据所述当前次请求信息的接收时间与所述上次请求信息的接收时间之间的时间间隔,确定所述当前次请求信息是否为重复请求,包括:在所述时间间隔小于预定时间间隔的情况下,确定所述当前次请求信息为所述重复请求;在所述时间间隔等于或者大于所述预定时间间隔的情况下,确定所述当前次请求信息不是所述重复请求。
在一个示例性实施例中,确定所述当前次请求信息与所述上次请求信息是否为相同的请求,包括:获取所述上次请求信息的标识信息;获取所述当前次请求信息的标识信息;在所述当前次请求信息的标识信息与所述上次请求信息的标识信息相同的情况下,确定为相同的所述请求。
在一个示例性实施例中,在所述当前次请求信息是所述重复请求的情况下,删除所述当前次请求信息,包括:构建请求消除函数;采用所述请求消除函数删除所述当前次请求。
在一个示例性实施例中,采用所述请求消除函数删除所述当前次请求,包括:将所述当前次请求信息的标识信息发送至所述请求消除函数;所述请求消除函数根据所述当前次请求信息的标识信息,删除所述当前次请求信息。
在一个示例性实施例中,在确定所述当前次请求信息是否为重复请求之前,所述方法还包括:构建时间获取函数;采用所述时间获取函数获取所述当前次请求信息的接收时间与所述上次请求信息的接收时间。
根据本发明实施例的另一个实施例,还提供了一种处理重复请求的装置,包括:接收单元,用于接收当前次请求信息,并确定所述当前次请求信息与上次请求信息是否为相同的请求;确定单元,用于在所述当前次请求信息与所述上次请求信息为相同的所述请求的情况下,根据所述当前次请求信息的接收时间与所述上次请求信息的接收时间之间的时间间隔,确定所述当前次请求信息是否为重复请求;删除单元,用于在所述当前次请求信息是所述重复请求的情况下,删除所述当前次请求信息。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述任意一种所述的方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行任意一种所述的方法。
在本发明实施例中,接收当前次请求信息,并确定当前次请求信息与上次请求信息是否为相同的请求;在当前次请求信息与上次请求信息为相同的请求的情况下,根据当前次请求信息的接收时间与上次请求信息的接收时间之间的时间间隔,确定当前次请求信息是否为重复请求;在当前次请求信息是重复请求的情况下,删除当前次请求信息(即不再将当前次请求发送至服务器)。采用技术方案,解决了采用axios处理重复请求的效率较低,不能很好地降低服务器的压力等问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种处理重复请求的方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的处理重复请求的方法的流程图;
图3是根据本发明实施例的处理重复请求的方法的示意图;
图4是根据本发明实施例的一种处理重复请求的装置的结构框图;
图5是根据本发明实施例的一种确定是否为重复请求的方法流程图;
图6是根据本发明实施例的一种具体的处理重复请求的方法流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的方法实施例可以在计算机终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种处理重复请求的方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的处理重复请求的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种处理重复请求的方法,应用于上述计算机终端,图2是根据本发明实施例的处理重复请求的方法的流程图,该流程包括如下步骤:
步骤S202,接收当前次请求信息,并确定上述当前次请求信息与上次请求信息是否为相同的请求;
步骤S204,在上述当前次请求信息与上述上次请求信息为相同的上述请求的情况下,根据上述当前次请求信息的接收时间与上述上次请求信息的接收时间之间的时间间隔,确定上述当前次请求信息是否为重复请求;
步骤S206,在上述当前次请求信息是上述重复请求的情况下,删除上述当前次请求信息。
通过上述步骤,接收当前次请求信息,并确定当前次请求信息与上次请求信息是否为相同的请求;在当前次请求信息与上次请求信息为相同的请求的情况下,根据当前次请求信息的接收时间与上次请求信息的接收时间之间的时间间隔,确定当前次请求信息是否为重复请求;在当前次请求信息是重复请求的情况下,删除当前次请求信息(即不再将当前次请求发送至服务器)。采用技术方案,解决了采用axios处理重复请求的效率较低,不能很好地降低服务器的压力等问题。
采用本方案可以防止用户的重复请求,开发者仅仅需要处理自身的业务逻辑即可,不需要再针对重复请求的用户,进行代码层面的控制处理。开发者不需要再处理一些重复请求的代码逻辑,服务器在大型活动期间可以减少接收到的重复请求,从而减少服务器的压力。
具体地,上述处理重复请求的方法基于axios实现。
其中,axios是一个优秀的基于promise的http库,用来发送请求,可以用在浏览器以及node.js中。在vue组件中使用axios,可以将axios单独封装到单独的文件中,添加拦截器对请求进行统一的处理,例如统一的错误处理,请求头中添加token,数据格式处理等等,然后导出对应的a x i o s实例。在业务代码中使用时,可以在v u e的原型链vue.prototype上挂载axios实例,然后在vue组件中直通过this.$axios发送请求;或者直接在vue组件中导入axios实例,发送请求。axios库里中断http请求需要用到cancel tokenAPI。
在一个示例性实施例中,上述方法还包括:在上述当前次请求信息不是上述重复请求的情况下,将上述当前次请求信息发送至服务器。即在当前次请求不是重复请求的情况下,正常将当前次请求发送至服务器。
本申请的一种可选的实施例中,采用前端缓存器将当前次请求信息缓存,在确定当前次请求信息不是重复请求的情况下,再将当前次请求信息发送至服务器。
在一个示例性实施例中,如图5所示,步骤S204包括:
步骤S10:在上述时间间隔小于预定时间间隔的情况下,确定上述当前次请求信息为上述重复请求;
步骤S12:在上述时间间隔等于或者大于上述预定时间间隔的情况下,确定上述当前次请求信息不是上述重复请求。
具体地,上述预定时间间隔可以设置为200ms、300ms以及500ms。本领域技术人员可以根据实际需求选择合适的预定时间间隔。在每一个预定时间间隔内仅能处理一次相同的请求,在有重复请求的情况下,就将重复请求删除,即不再将重复请求发送至服务器,以降低服务器的压力。通过时间间隔确定是不是重复请求的方法相较于仅仅在需要防止重复请求的地方声明变量的方法,可以实现对重复请求的较快的响应。对于开发人员而言大大减少了代码的书写量。
在一个示例性实施例中,步骤S202包括:
步骤S20,获取上述上次请求信息的标识信息;
步骤S22,获取上述当前次请求信息的标识信息;
步骤S24,在上述当前次请求信息的标识信息与上述上次请求信息的标识信息相同的情况下,确定为相同的上述请求。即采用标识信息对每一次的请求信息进行标识,在后一次的请求信息的标识信息与前一次的请求信息的标识信息相同的情况下,可以确定为相同的请求。反之,在后一次的请求信息的标识信息与前一次的请求信息的标识信息不相同的情况下,可以确定不是相同的请求。
具体的,上述标识信息包括请求地址、请求方式和请求事由。其中,请求地址是指本次请求的url地址,请求方式是指get请求方式或者post请求方式,请求事由是指请求的具体的事宜,例如传递用户名、传递密码等。当然,标识信息中还可以包括除请求地址、请求方式和请求事由之外的其他种类的信息,本领域技术人员可以根据实际需求进行设置。可将请求地址、请求方式、请求事由以及请求携带的参数数据等共同组成一个标识信息。
本申请的一种具体的实施方式中,通过改写axios的request方法,将上次请求信息的标识信息、当前次请求信息的标识信息、当前次请求信息的接收时间以及上次请求信息的接收时间存入改写后的request中,在确定当前次请求信息为重复请求的情况下,通过axios的canelToken方式进行取消操作。
其中,axios的request,指的是axios中的请求拦截器,请求拦截器可以封装http请求,可以在request中写入上次请求信息的标识信息、当前次请求信息的标识信息、当前次请求信息的接收时间以及上次请求信息的接收时间。进而根据上次请求信息的标识信息和当前次请求信息的标识信息确定上次请求信息与当前次请求信息是不是相同的请求,在确定是相同的请求的前提下,根据当前次请求信息的接收时间以及上次请求信息的接收时间确定当前次请求信息是不是重复的请求,在为重复的请求的情况下,将当前次请求信息取消。
可选地,建立第一变量,在第一变量中保存上次请求信息的标识信息;建立第二变量,在第二变量中保存当前次请求信息的标识信息;通过比较第一变量和第二变量确定当前次请求信息的标识信息与上次请求信息的标识信息是否相同。其中,第一变量和第二变量也是基于axios库建立的。具体地,设置第一变量为axios.canelToken.source1(),canelToken用于保存上次请求信息的标识信息。设置第二变量为axios.canelToken.source2(),canelToken用于保存当前次请求信息的标识信息。当然,也可以通过一个变量保存当前次请求信息的标识信息和上次请求信息的标识信息,即可以通过比较一个变量中的特定的参数的变化情况确定当前次请求信息的标识信息和上次请求信息的标识信息是否相同,其中,特定的参数用于表示标识信息,若特定的参数发生了变化可以确定当前次请求信息的标识信息和上次请求信息的标识信息是不相同的,即可以确定当前次请求信息与上次请求信息是不同的请求。若特定的参数没有发生变化,可以确定当前次请求信息的标识信息和上次请求信息的标识信息是相同的,即可以确定当前次请求信息与上次请求信息是相同的请求。
本申请的一种具体的实施方式中,通过一个Map的数据结构来检测当前次请求信息与上次请求信息是否为相同的请求。具体地,Map是一个key-value的数据结构,每次发送请求会先根据请求生成的标识信息(当前key)检测这个key是否在Map的数据结构中,如果不存在则肯定不会是重复请求,并在Map中添加这个key并记录这个key的value,value中要记录当前次请求信息的接收时间(用于与下次相同请求的接收时间比较);如果存在则比较这个key的value里的时间与当前次请求信息的接收时间是否满足开发者配置的允许重复请求的范围内(即时间差是否小于预定时间间隔),满足则视为重复请求,反之放行。
在一个示例性实施例中,在上述当前次请求信息是上述重复请求的情况下,删除上述当前次请求信息,包括:
步骤S30,构建请求消除函数;
步骤S32,采用上述请求消除函数删除上述当前次请求。
在一个示例性实施例中,采用上述请求消除函数删除上述当前次请求,包括:将上述当前次请求信息的标识信息发送至上述请求消除函数;上述请求消除函数根据上述当前次请求信息的标识信息,删除上述当前次请求信息。
在一个示例性实施例中,采用上述请求消除函数删除上述当前次请求,包括:预先将请求消除函数存储在数据库中;调用数据库中的请求消除函数删除上述当前次请求。具体地,axios中的请求消除函数可以表示为cancelToken api,实质为调用xhr.abort方法,使得客户端放弃本次请求。
在一个示例性实施例中,采用上述请求消除函数删除上述当前次请求,包括:预先将请求消除函数存储在axios库中;调用axios库中的请求消除函数删除上述当前次请求。
在一个示例性实施例中,在确定上述当前次请求信息是否为重复请求之前,上述方法还包括:构建时间获取函数;采用上述时间获取函数获取上述当前次请求信息的接收时间与上述上次请求信息的接收时间。具体地,时间获取函数可以表示为axios.timeget.function(),采用时间获取函数可以实时获取当前次请求信息的接收时间与上述上次请求信息的接收时间。
为了更好的理解上述处理重复请求的方法的过程,以下再结合可选实施例对上述处理重复请求的实现方法流程进行说明,但不用于限定本发明实施例的技术方案。
在本实施例中提供了一种处理重复请求的方法,图3是根据本发明实施例的处理重复请求的方法的示意图,如图3所示,具体如下步骤:
步骤S301:前端向服务器发送当前次请求信息,并确定上述当前次请求信息与上次请求信息是否为相同的请求;
步骤S302:前端在上述当前次请求信息与上述上次请求信息为相同的上述请求的情况下,根据上述当前次请求信息的接收时间与上述上次请求信息的接收时间之间的时间间隔,确定上述当前次请求信息是否为重复请求;
步骤S303:在上述当前次请求信息不是上述重复请求的情况下,前端将当前次请求信息取消,即不再发送至服务器;
步骤S304:在上述当前次请求信息不是上述重复请求的情况下,前端将上述当前次请求信息发送至服务器。
具体地,本方案适用于前端使用的axios库发送请求至服务器。
通过上述实施例,在前端发送请求至服务器的过程中,解决了采用axios处理重复请求的效率较低,不能很好地降低服务器的压力等问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
图4是根据本发明实施例的一种处理重复请求的装置的结构框图;如图4所示,包括:
接收单元42,用于接收当前次请求信息,并确定上述当前次请求信息与上次请求信息是否为相同的请求;
确定单元44,用于在上述当前次请求信息与上述上次请求信息为相同的上述请求的情况下,根据上述当前次请求信息的接收时间与上述上次请求信息的接收时间之间的时间间隔,确定上述当前次请求信息是否为重复请求;
删除单元46,用于在上述当前次请求信息是上述重复请求的情况下,删除上述当前次请求信息。
通过上述实施例,接收单元接收当前次请求信息,并确定当前次请求信息与上次请求信息是否为相同的请求;确定单元在当前次请求信息与上次请求信息为相同的请求的情况下,根据当前次请求信息的接收时间与上次请求信息的接收时间之间的时间间隔,确定当前次请求信息是否为重复请求;删除单元在当前次请求信息是重复请求的情况下,删除当前次请求信息(即不再将当前次请求发送至服务器);采用技术方案,解决了采用axios处理重复请求的效率较低,不能很好地降低服务器的压力等问题。
采用本方案可以防止用户的重复请求,开发者仅仅需要处理自身的业务逻辑即可,不需要再针对重复请求的用户,进行代码层面的控制处理。开发者不需要再处理一些重复请求的代码逻辑,服务器在大型活动期间可以减少接收到的重复请求,从而减少服务器的压力。
在一个示例性实施例中,上述装置还包括发送单元,发送单元用于在当前次请求信息不是重复请求的情况下,将当前次请求信息发送至服务器。即在当前次请求不是重复请求的情况下,正常将当前次请求发送至服务器。
在一个示例性实施例中,确定单元还用于在上述时间间隔小于预定时间间隔的情况下,确定上述当前次请求信息为上述重复请求;在上述时间间隔等于或者大于上述预定时间间隔的情况下,确定上述当前次请求信息不是上述重复请求。具体地,上述预定时间间隔可以设置为200ms、300ms以及500ms。本领域技术人员可以根据实际需求选择合适的预定时间间隔。在每一个预定时间间隔内仅能处理一次相同的请求,在有重复请求的情况下,就将重复请求删除,即不再将重复请求发送至服务器,以降低服务器的压力。
在一个示例性实施例中,接收单元还用获取上述上次请求信息的标识信息;获取上述当前次请求信息的标识信息;在上述当前次请求信息的标识信息与上述上次请求信息的标识信息相同的情况下,确定为相同的上述请求。即采用标识信息对每一次的请求信息进行标识,在后一次的请求信息的标识信息与前一次的请求信息的标识信息相同的情况下,可以确定为相同的请求。反之,在后一次的请求信息的标识信息与前一次的请求信息的标识信息不相同的情况下,可以确定不是相同的请求。
具体的,上述标识信息包括请求地址、请求方式和请求事由。其中,请求地址是指本次请求的url地址,请求方式是指get请求方式或者post请求方式,请求事由是指请求的具体的事宜,例如传递用户名、传递密码等。
本申请的一种具体的实施方式中,通过改写axios的request方法,将上次请求信息的标识信息、当前次请求信息的标识信息、当前次请求信息的接收时间以及上次请求信息的接收时间存入改写后的request中,在确定当前次请求信息为重复请求的情况下,通过axios的canelToken方式进行取消操作。
其中,axios的request,指的是axios中的请求拦截器,请求拦截器可以封装http请求,可以在request中写入上次请求信息的标识信息、当前次请求信息的标识信息、当前次请求信息的接收时间以及上次请求信息的接收时间。进而根据上次请求信息的标识信息和当前次请求信息的标识信息确定上次请求信息与当前次请求信息是不是相同的请求,在确定是相同的请求的前提下,根据当前次请求信息的接收时间以及上次请求信息的接收时间确定当前次请求信息是不是重复的请求,在为重复的请求的情况下,将当前次请求信息取消。
可选地,建立第一变量,在第一变量中保存上次请求信息的标识信息;建立第二变量,在第二变量中保存当前次请求信息的标识信息;通过比较第一变量和第二变量确定当前次请求信息的标识信息与上次请求信息的标识信息是否相同。其中,第一变量和第二变量也是基于axios库建立的。其中,第一变量和第二变量也是基于axios库建立的。具体地,设置第一变量为axios.canelToken.source1(),canelToken用于保存上次请求信息的标识信息。设置第二变量为axios.canelToken.source2(),canelToken用于保存当前次请求信息的标识信息。当然,也可以通过一个变量保存当前次请求信息的标识信息和上次请求信息的标识信息,即可以通过比较一个变量中的特定的参数的变化情况确定当前次请求信息的标识信息和上次请求信息的标识信息是否相同,其中,特定的参数用于表示标识信息,若特定的参数发生了变化可以确定当前次请求信息的标识信息和上次请求信息的标识信息是不相同的,即可以确定当前次请求信息与上次请求信息是不同的请求。若特定的参数没有发生变化,可以确定当前次请求信息的标识信息和上次请求信息的标识信息是相同的,即可以确定当前次请求信息与上次请求信息是相同的请求。
在一个示例性实施例中,删除单元包括构建模块和删除模块,构建模块用于构建请求消除函数;删除模块用于采用上述请求消除函数删除上述当前次请求。
在一个示例性实施例中,删除模块包括第一存储子模块和第一调用子模块,第一存储子模块用于预先将请求消除函数存储在数据库中;第一调用子模块用于调用数据库中的请求消除函数删除上述当前次请求。
在一个示例性实施例中,删除模块包括第二存储子模块和第二调用子模块,第二存储子模块用于预先将请求消除函数存储在axios库中;第二调用子模块用于调用axios库中的请求消除函数删除上述当前次请求。
在一个示例性实施例中,删除模块还用于将上述当前次请求信息的标识信息发送至上述请求消除函数;上述请求消除函数根据上述当前次请求信息的标识信息,删除上述当前次请求信息。
在一个示例性实施例中,上述装置还包括构建单元和获取单元,构建单元用于在确定上述当前次请求信息是否为重复请求之前,构建时间获取函数;获取单元用于采用上述时间获取函数获取上述当前次请求信息的接收时间与上述上次请求信息的接收时间。具体地,时间获取函数可以表示为axios.timeget.function(),采用时间获取函数可以实时获取当前次请求信息的接收时间与上述上次请求信息的接收时间。
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
步骤S202,接收当前次请求信息,并确定上述当前次请求信息与上次请求信息是否为相同的请求;
步骤S204,在上述当前次请求信息与上述上次请求信息为相同的上述请求的情况下,根据上述当前次请求信息的接收时间与上述上次请求信息的接收时间之间的时间间隔,确定上述当前次请求信息是否为重复请求;
步骤S206,在上述当前次请求信息是上述重复请求的情况下,删除上述当前次请求信息;
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤S202,接收当前次请求信息,并确定上述当前次请求信息与上次请求信息是否为相同的请求;
步骤S204,在上述当前次请求信息与上述上次请求信息为相同的上述请求的情况下,根据上述当前次请求信息的接收时间与上述上次请求信息的接收时间之间的时间间隔,确定上述当前次请求信息是否为重复请求;
步骤S206,在上述当前次请求信息是上述重复请求的情况下,删除上述当前次请求信息;
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
实施例
本实施例涉及一种具体的处理重复请求的方法,具体流程如图6所示。
步骤S602:接收当前次请求信息;
步骤S604:确定上述当前次请求信息与上次请求信息是否为相同的请求;
步骤S606:在上述当前次请求信息与上述上次请求信息为相同的上述请求的情况下,根据上述当前次请求信息的接收时间与上述上次请求信息的接收时间之间的时间间隔,确定上述当前次请求信息是否为重复请求;
步骤S608:在上述时间间隔小于预定时间间隔的情况下,确定上述当前次请求信息为上述重复请求;
步骤S610:在上述时间间隔等于或者大于上述预定时间间隔的情况下,确定上述当前次请求信息不是上述重复请求;
步骤S612:在上述当前次请求信息是上述重复请求的情况下,删除上述当前次请求信息;
步骤S614:在上述当前次请求信息不是上述重复请求的情况下,将上述当前次请求信息发送至服务器。
本实施例中,接收当前次请求信息,并确定当前次请求信息与上次请求信息是否为相同的请求;在当前次请求信息与上次请求信息为相同的请求的情况下,根据当前次请求信息的接收时间与上次请求信息的接收时间之间的时间间隔,确定当前次请求信息是否为重复请求;在当前次请求信息是重复请求的情况下,删除当前次请求信息(即不再将当前次请求发送至服务器)。采用技术方案,解决了采用axios处理重复请求的效率较低,不能很好地降低服务器的压力等问题。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种处理重复请求的方法,其特征在于,包括:
接收当前次请求信息,并确定所述当前次请求信息与上次请求信息是否为相同的请求;
在所述当前次请求信息与所述上次请求信息为相同的所述请求的情况下,根据所述当前次请求信息的接收时间与所述上次请求信息的接收时间之间的时间间隔,确定所述当前次请求信息是否为重复请求;
在所述当前次请求信息是所述重复请求的情况下,删除所述当前次请求信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述当前次请求信息不是所述重复请求的情况下,将所述当前次请求信息发送至服务器。
3.根据权利要求1所述的方法,其特征在于,根据所述当前次请求信息的接收时间与所述上次请求信息的接收时间之间的时间间隔,确定所述当前次请求信息是否为重复请求,包括:
在所述时间间隔小于预定时间间隔的情况下,确定所述当前次请求信息为所述重复请求;
在所述时间间隔等于或者大于所述预定时间间隔的情况下,确定所述当前次请求信息不是所述重复请求。
4.根据权利要求1所述的方法,其特征在于,确定所述当前次请求信息与所述上次请求信息是否为相同的请求,包括:
获取所述上次请求信息的标识信息;
获取所述当前次请求信息的标识信息;
在所述当前次请求信息的标识信息与所述上次请求信息的标识信息相同的情况下,确定为相同的所述请求。
5.根据权利要求4所述的方法,其特征在于,在所述当前次请求信息是所述重复请求的情况下,删除所述当前次请求信息,包括:
构建请求消除函数;
采用所述请求消除函数删除所述当前次请求。
6.根据权利要求5所述的方法,其特征在于,采用所述请求消除函数删除所述当前次请求,包括:
将所述当前次请求信息的标识信息发送至所述请求消除函数;
所述请求消除函数根据所述当前次请求信息的标识信息,删除所述当前次请求信息。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在确定所述当前次请求信息是否为重复请求之前,所述方法还包括:
构建时间获取函数;
采用所述时间获取函数获取所述当前次请求信息的接收时间与所述上次请求信息的接收时间。
8.一种处理重复请求的装置,其特征在于,包括:
接收单元,用于接收当前次请求信息,并确定所述当前次请求信息与上次请求信息是否为相同的请求;
确定单元,用于在所述当前次请求信息与所述上次请求信息为相同的所述请求的情况下,根据所述当前次请求信息的接收时间与所述上次请求信息的接收时间之间的时间间隔,确定所述当前次请求信息是否为重复请求;
删除单元,用于在所述当前次请求信息是所述重复请求的情况下,删除所述当前次请求信息。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725340.0A CN113434293A (zh) | 2021-06-29 | 2021-06-29 | 处理重复请求的方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725340.0A CN113434293A (zh) | 2021-06-29 | 2021-06-29 | 处理重复请求的方法和装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113434293A true CN113434293A (zh) | 2021-09-24 |
Family
ID=77757565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110725340.0A Pending CN113434293A (zh) | 2021-06-29 | 2021-06-29 | 处理重复请求的方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434293A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114189559A (zh) * | 2021-12-14 | 2022-03-15 | 平安付科技服务有限公司 | 基于Axios的接口重复请求处理方法及系统 |
CN115633094A (zh) * | 2022-12-23 | 2023-01-20 | 北京安锐卓越信息技术股份有限公司 | 一种xhr请求处理方法、用户终端、服务器及存储介质 |
CN116112558A (zh) * | 2022-11-21 | 2023-05-12 | 上海浦东发展银行股份有限公司 | 一种基于axios的接口拦截方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040209A (zh) * | 2018-07-23 | 2018-12-18 | 深圳市牛鼎丰科技有限公司 | 拦截重复请求的方法、装置、计算机设备及存储介质 |
-
2021
- 2021-06-29 CN CN202110725340.0A patent/CN113434293A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040209A (zh) * | 2018-07-23 | 2018-12-18 | 深圳市牛鼎丰科技有限公司 | 拦截重复请求的方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
黄菊华: "《Vue.js入门与商城开发实战》", 北京:机械工业出版社, pages: 151 - 158 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114189559A (zh) * | 2021-12-14 | 2022-03-15 | 平安付科技服务有限公司 | 基于Axios的接口重复请求处理方法及系统 |
CN114189559B (zh) * | 2021-12-14 | 2024-02-06 | 平安付科技服务有限公司 | 基于Axios的接口重复请求处理方法及系统 |
CN116112558A (zh) * | 2022-11-21 | 2023-05-12 | 上海浦东发展银行股份有限公司 | 一种基于axios的接口拦截方法和系统 |
CN115633094A (zh) * | 2022-12-23 | 2023-01-20 | 北京安锐卓越信息技术股份有限公司 | 一种xhr请求处理方法、用户终端、服务器及存储介质 |
CN115633094B (zh) * | 2022-12-23 | 2023-03-21 | 北京安锐卓越信息技术股份有限公司 | 一种xhr请求处理方法、用户终端、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113434293A (zh) | 处理重复请求的方法和装置、存储介质及电子装置 | |
US10225145B2 (en) | Method and device for updating client | |
CN111885594B (zh) | 设备绑定方法及装置 | |
CN109391673B (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN105282047A (zh) | 访问请求处理方法及装置 | |
EP3337219A1 (en) | Carrier configuration processing method, device and system, and computer storage medium | |
CN104021141B (zh) | 数据处理和云服务的方法、装置及系统 | |
CN108429739B (zh) | 一种识别蜜罐的方法、系统及终端设备 | |
CN113010378B (zh) | 微服务模块的日志处理方法及装置、存储介质、电子装置 | |
CN110087226B (zh) | 流量统计方法、装置、存储介质及电子装置 | |
CN113422772B (zh) | 专网终端访问处理方法、装置及电子设备 | |
CN113434796B (zh) | 页面缓存的操作方法及装置、存储介质及电子装置 | |
CN108647139B (zh) | 系统的测试方法、装置、存储介质及电子装置 | |
CN113434135B (zh) | 接口的调用重复度确定方法和装置、存储介质及电子装置 | |
CN114189384B (zh) | 业务处理方法、装置、设备及存储介质 | |
CN101873580A (zh) | 业务应用的下载方法及业务应用管理平台系统 | |
CN113434525A (zh) | 缓存数据的更新方法和装置、存储介质及电子装置 | |
CN113746932A (zh) | 网络请求合并方法、装置及电子装置、计算机程序产品 | |
CN111641959A (zh) | 一种网络环境信息的检测方法和装置 | |
CN112256658A (zh) | 日志记录的分流方法及装置、存储介质、电子装置 | |
CN113852919B (zh) | 预警消息的生成方法和装置、存储介质及电子装置 | |
CN113434399B (zh) | 业务节点日志的处理方法和装置、存储介质及电子装置 | |
JP2019154071A (ja) | 通信制御装置及び通信設定方法 | |
CN113132324B (zh) | 样本鉴定方法及系统 | |
CN118175464B (zh) | Fttr网关升级方法、网关设备、系统及计算机可读存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210924 |
|
RJ01 | Rejection of invention patent application after publication |