CN110888704A - 一种高并发接口处理方法、装置、设备及存储介质 - Google Patents

一种高并发接口处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110888704A
CN110888704A CN201911089954.3A CN201911089954A CN110888704A CN 110888704 A CN110888704 A CN 110888704A CN 201911089954 A CN201911089954 A CN 201911089954A CN 110888704 A CN110888704 A CN 110888704A
Authority
CN
China
Prior art keywords
interface
time
interfaces
short
queue
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
Application number
CN201911089954.3A
Other languages
English (en)
Inventor
周国伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Inspur Data Technology Co Ltd
Original Assignee
Beijing Inspur Data Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Inspur Data Technology Co Ltd filed Critical Beijing Inspur Data Technology Co Ltd
Priority to CN201911089954.3A priority Critical patent/CN110888704A/zh
Publication of CN110888704A publication Critical patent/CN110888704A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种高并发接口处理方法、装置、设备及存储介质,该方法包括:将待执行的接口均加入至接口请求队列中;由接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,如果短时接口在第一响应时间内响应,将短时接口移出短时队列,将对应响应数据提供给界面,否则,将短时接口作为长时接口移入至长时队列中继续执行;在短时队列中无接口时返回执行将多个短时接口加入至短时队列中的步骤;如果长时接口在第二响应时间内响应,将长时接口移出长时队列,将对应响应数据提供给界面,否则,则将长时接口作为待执行的接口加入至接口请求队列中;第二响应时间大于第一响应时间。能够有效避免因高并发接口导致对应的界面卡死。

Description

一种高并发接口处理方法、装置、设备及存储介质
技术领域
本发明涉及云平台技术领域,更具体地说,涉及一种高并发接口处理方法、装置、设备及存储介质。
背景技术
在云平台中,前端经常遇到高并发请求接口(简称为高并发接口)的状况,在同一个浏览器界面(简称界面)上,可能会同时触发大量的请求,界面的元素需要这些请求对应接口返回的数据(简称响应数据)来构造,才能生成一个完整的页面。
在网络状态非常好的情况下,接口延迟很低,响应极快,那么高并发并不是个问题,在快速的响应下,高并发也可以快速响应过来。但若网络稍有延迟,或者接口反应慢,就会造成后续的接口卡住,接口无法返回所需的数据,表现在界面上就是界面卡,无法显示数据。具体来说,在云平台的界面中,如首页、监控页面等,会有大量并发的请求,如首页因涉及各种不同数据的汇总,需要调用非常多的接口(一般会超过10个),而且这些接口是同时调用的,并且各接口响应时间不同,有的很快,有的很慢,浏览器一般允许6个接口并发执行,按正常流程的话,同时并发十几个接口,必须等待前面并发执行的6个接口响应完毕,才会继续执行后面的接口,如果中间有接口卡住或迟迟得不到数据的话,界面就会卡死,导致系统崩溃,这对系统来说是非常危险的;另外,也可能出现多于6个的接口同时争抢执行资源的情况,这种情况下也会因为过多接口同时争抢执行资源,导致这些接口均无法正常执行,进而导致界面卡死。
综上所述,如何避免因高并发接口导致对应的界面卡死是目前本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种高并发接口处理方法、装置、设备及存储介质,能够有效避免因高并发接口导致对应的界面卡死。
为了实现上述目的,本发明提供如下技术方案:
一种高并发接口处理方法,包括:
将从界面传来的待执行的接口均加入至接口请求队列中;
由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,如果所述短时接口在第一响应时间内能够响应,则将所述短时接口移出所述短时队列,并将对应的响应数据提供给所述界面,如果所述短时接口在所述第一响应时间内无法响应,则将所述短时接口作为长时接口移入至长时队列中继续执行;并在确定出所述短时队列中无接口时返回执行由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行的步骤;
如果所述长时接口在第二响应时间内能够响应,则将所述长时接口移出所述长时队列,并将对应的响应数据提供给所述界面,如果所述长时接口在所述第二响应时间内无法响应,则将所述长时接口作为待执行的接口加入至所述接口请求队列中;其中,所述第二响应时间大于所述第一响应时间。
优选的,还包括:
如果所述长时接口在所述第二响应时间内能够响应,则判断数据缓存区中是否存在与该能够响应的长时接口对应的响应数据,如果是,则利用该能够响应的长时接口当前得到的响应数据替换所述数据缓存区中缓存的对应响应数据,如果否,则将该能够响应的长时接口当前得到的响应数据缓存至所述数据缓存区中;
对应的,所述方法还包括:
如果所述长时接口在所述第二响应时间内无法响应,则将所述数据缓存区中与该无法响应的长时接口对应的响应数据提供给所述界面。
优选的,将响应数据提供给所述界面之前,还包括:
判断当前执行任一接口得到的响应数据与上次执行该任一接口得到的响应数据是否相同,如果是,则控制界面继续保持与上次执行该任一接口得到的响应数据对应的显示,如果否,则将当前执行该任一接口得到的响应数据提供给所述界面进行显示。
优选的,由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,包括:
如果所述接口请求队列中待执行的接口的数量不大于第一预设量,则将所述接口请求队列中全部待执行的接口均取出,并加入至所述短时队列中并发执行;如果所述接口请求队列中待执行的接口的数量大于所述第一预设量,则将所述接口请求队列中第一预设量的接口取出,并加入至所述短时队列中并发执行。
优选的,所述第一预设量为所述短时队列内能够允许并发执行的最大接口数量,所述长时队列内能够允许并行执行的最大接口数量为第二预设量,所述第一预设量及所述第二预设量的和为所述界面对应浏览器能够允许并发执行的最大接口数量。
优选的,将接口作为短时接口加入至所述短时队列中,包括:
为所述接口设置与所述短时队列对应的标记;
将所述短时接口作为长时接口加入至所述长时队列中,包括:
将所述短时接口的标记修改为与所述长时队列对应的标记。
优选的,还包括:
为所述短时接口设置对应的短时锁,以指示所述短时锁基于对应短时接口在所述第一响应时间内能否响应的结果进行对应的操作;为所述长时接口设置对应的长时锁,以指示所述长时所基于对应长时接口在所述第二响应时间内能否响应的结果进行对应的操作。
一种高并发接口处理装置,包括:
加入队列模块,用于:将从界面传来的待执行的接口均加入至接口请求队列中;
短时响应模块,用于:由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,如果所述短时接口在第一响应时间内能够响应,则将所述短时接口移出所述短时队列,并将对应的响应数据提供给所述界面,如果所述短时接口在所述第一响应时间内无法响应,则将所述短时接口作为长时接口移入至长时队列中继续执行;并在确定出所述短时队列中无接口时返回执行由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行的步骤;
长时响应模块,用于:如果所述长时接口在第二响应时间内能够响应,则将所述长时接口移出所述长时队列,并将对应的响应数据提供给所述界面,如果所述长时接口在所述第二响应时间内无法响应,则将所述长时接口作为待执行的接口加入至所述接口请求队列中;其中,所述第二响应时间大于所述第一响应时间。
一种高并发接口处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述高并发接口处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述高并发接口处理方法的步骤。
本发明提供的技术方案中,先将待执行的接口均加入至接口请求队列中,进而由接口请求队列中取出接口进行处理,能够控制并发处理的接口的数量,避免现有技术中过多接口同时争抢执行资源的情况,也就避免了这种情况导致的界面卡死问题;并且,在短时队列中进行响应时间较短的接口的执行,在长时队列中进行响应时间较长的接口的执行,长时队列中无法在一定时间内执行完成的接口放入接口请求队列中等待执行,从而基于响应时间的长短分类处理对应的接口,响应时间短的接口对应响应数据可以及时提供给界面进行显示,响应时间长的接口对应响应数据后提供给界面显示,且长时间无法响应的接口不再占用对应队列的资源,而是等待重新执行;相对于现有技术中必须全部执行完当前并发执行的多个接口再执行后面的接口,本申请能够使得界面不会处于持续等待响应数据的状态,而是能够及时对接口对应响应数据进行依次显示,且不会对执行资源进行无效占用,进而有效避免了界面卡死的情况出现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种高并发接口处理方法的流程图;
图2为本发明实施例提供的一种高并发接口处理方法的实现示意图;
图3为本发明实施例提供的一种高并发接口处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种高并发接口处理方法的流程图,可以包括:
S11:将从界面传来的待执行的接口均加入至接口请求队列中。
需要说明的是,本发明实施例提供的一种高并发接口处理方法的执行主体可以为对应的高并发接口处理装置。另外,本发明提供的技术方案主要应用于云平台,当然也可以应用于其他出现高并发接口的状况的场景中;并且,本发明提供的技术方案不需要改变云平台的后端架构及接口,仅需通过前端处理高并发的接口即可解决界面卡死的问题。
在云平台中,当遇到高并发请求接口的状况时,可以将高并发的接口,也即从界面传来的待执行的接口均加入至接口请求队列中;其中,将界面传来的待执行的接口均加入至接口请求队列中是一个循环多次执行的步骤,也即只要界面传来待执行的接口,则将该待执行的接口加入至接口请求队列中,从而使得只要是从界面传来的待执行的接口,均加入至接口请求队列中,进而在后续步骤中将接口请求队列中的接口取出及执行等。
S12:由接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,如果短时接口在第一响应时间内能够响应,则将短时接口移出短时队列,并将对应的响应数据提供给界面,如果短时接口在第一响应时间内无法响应,则将短时接口作为长时接口移入至长时队列中继续执行;并在确定出短时队列中无接口时返回执行由接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行的步骤。
接口请求队列中存储的接口均为待执行的接口,由接口请求队列中取出多个接口作为短时接口加入至短时队列中,并在短时队列中对加入至其中的全部短时接口进行并发执行,也即同时执行短时队列内的全部短时接口,从而相对于依次执行各短时接口能够加快接口执行速率,加快对应响应数据的获取,进而加快界面响应速度。其中,第一响应时间及第二响应时间可以根据实际需要进行设定,如第一响应时间可以设置为3秒,第二响应时间可以设置为20秒。如果短时接口从开始执行到得到响应数据所用的时间不大于第一响应时间,也即短时接口在第一响应时间内能够响应,则将短时接口移出短时队列,并将对应响应数据提供给界面供界面进行相应显示;如果短时接口从开始执行到当前时刻所用时间已经达到第一响应时间但是还未得到响应数据,也即短时接口在第一响应时间内无法响应,则将短时接口从短时队列中移入至长时队列中,以在长时队列中继续执行,此时短时队列中不再存在已经移入至长时队列中的接口。由此,在第一响应时间内能够响应的接口可以在短时队列中执行完毕,并在执行完毕后将对应响应数据返回给界面供其进行显示,从而能够及时显示响应时间较短的接口对应响应数据;而在第一响应时间内无法响应的接口则从短时队列中移入至长时队列中继续执行,从而能够使得响应时间较长的接口继续正常执行,且避免了其影响短时队列中接口的执行。
另外,需要实时判断短时队列中是否还存在短时接口,只要判断出短时队列中不存在短时接口,则由接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,从而能够这种方式保证尽可能多的短时接口在尽可能段的时间内执行,以提高界面响应速度。
S13:如果长时接口在第二响应时间内能够响应,则将长时接口移出长时队列,并将对应的响应数据提供给界面,如果长时接口在第二响应时间内无法响应,则将长时接口作为待执行的接口加入至接口请求队列中;其中,第二响应时间大于第一响应时间。
如果长时接口被加入至长时队列继续执行的时刻起到得到响应数据所用的时间不大于第二响应时间,也即长时接口在第二响应时间内能够响应,则将长时接口移出长时队列,以避免对长时队列的占用,并将对应的响应数据提供给界面,以供界面实现相应显示;如果长时接口被加入至长时队列继续执行的时刻起到当前时刻所用时间已经达到第二响应时间但是还未得到响应数据,也即长时接口在第二响应时间内无法响应,则不再继续等待长时接口的响应,而是将其作为待执行的接口加入至接口请求队列中,以避免长时间的无效等待。并且,如果某接口作为长时接口在长时队列中执行的次数超过对应次数阈值(如三次),但是还未得到对应的响应数据,则认为该接口无法正常执行,此时停止再将该接口加入至接口请求队列中,而是可以将该接口对应表示携带于提示信息中进行输出,以指示外界对其进行处理。
本发明提供的技术方案中,先将待执行的接口均加入至接口请求队列中,进而由接口请求队列中取出接口进行处理,能够控制并发处理的接口的数量,避免现有技术中过多接口同时争抢执行资源的情况,也就避免了这种情况导致的界面卡死问题;并且,在短时队列中进行响应时间较短的接口的执行,在长时队列中进行响应时间较长的接口的执行,长时队列中无法在一定时间内执行完成的接口放入接口请求队列中等待执行,从而基于响应时间的长短分类处理对应的接口,响应时间短的接口对应响应数据可以及时提供给界面进行显示,响应时间长的接口对应响应数据后提供给界面显示,且长时间无法响应的接口不再占用对应队列的资源,而是等待重新执行;相对于现有技术中必须全部执行完当前并发执行的多个接口再执行后面的接口,本申请能够使得界面不会处于持续等待响应数据的状态,而是能够及时对接口对应响应数据进行依次显示,且不会对执行资源进行无效占用,进而有效避免了界面卡死的情况出现。
本发明实施例提供的一种高并发接口处理方法,还可以包括:
如果长时接口在第二响应时间内能够响应,则判断数据缓存区中是否存在与该能够响应的长时接口对应的响应数据,如果是,则利用该能够响应的长时接口当前得到的响应数据替换数据缓存区中缓存的对应响应数据,如果否,则将该能够响应的长时接口当前得到的响应数据缓存至数据缓存区中;
对应的,方法还可以包括:
如果长时接口在第二响应时间内无法响应,则将数据缓存区中与该无法响应的长时接口对应的响应数据提供给界面。
本实施例中还提供对接口及对应响应数据的缓存功能,具体来说,数据缓存区可以在退出系统或者清理缓存前缓存一份与每个长时接口对应的最新的响应数据,并在下一份响应数据到达时替换数据缓存区中缓存的对应响应数据,从而使得如果长时接口在第二响应时间内无法响应时,为了避免接口超时导致界面获取不到数据,进而导致界面因缺少响应数据对应显示数据而异常的情况,本实施例中可以先将数据缓存区中缓存的该在第二响应时间内无法响应的长时接口对应的响应数据提供给界面进行显示,从而保证界面能够及时获取所需响应数据,进一步保证了界面的顺利显示。
另外,数据缓存区还可以用于缓存所有接口及对应响应数据,也即在某一接口执行完毕得到对应响应数据后,可以将该接口及对应响应数据缓存至数据缓存区中,进而再由数据缓存区中获取相应响应数据提供界面进行显示,从而通过对数据的缓存不仅避免了数据的丢失,还能够便于对数据进行相应查询及管理等操作。需要说明的是,本实施例中数据缓存区具体可以是浏览器缓存,从而将接口及对应响应数据存储在对应的对象中,便于对其进行后续处理。
本发明实施例提供的一种高并发接口处理方法,将响应数据提供给界面之前,还可以包括:
判断当前执行任一接口得到的响应数据与上次执行该任一接口得到的响应数据是否相同,如果是,则控制界面继续保持与上次执行该任一接口得到的响应数据对应的显示,如果否,则将当前执行该任一接口得到的响应数据提供给界面进行显示。
本实施例中增加了数据更新功能,在任一接口的响应数据被提供给界面进行显示之前,还可以判断此次得到的该任一接口的响应数据与上次(距离当前时刻最近的一次)该任一接口得到的响应数据是否相同,如果相同,则不再将此次得到的响应数据提供给界面,使得界面继续保持上次该任一接口得到的响应数据对应的显示,如果不同,再将此次得到的响应数据提供给界面,使得界面显示发生对应的改变,从而只将最新的数据提供给界面,能够减少界面更新频率,防止界面抖动,减轻界面压力。
本发明实施例提供的一种高并发接口处理方法,由接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,可以包括:
如果接口请求队列中待执行的接口的数量不大于第一预设量,则将接口请求队列中全部待执行的接口均取出,并加入至短时队列中并发执行;如果接口请求队列中待执行的接口的数量大于第一预设量,则将接口请求队列中第一预设量的接口取出,并加入至短时队列中并发执行。
由于一般浏览器在进行接口并发处理时具有能够并发处理的接口的最大接口数量,超过最大接口数量则无法顺利实现接口的并发处理;因此本实施例中设置第一预设量,第一预设量必须小于或者等于上述最大接口数量,以避免因并发处理的接口过多导致界面卡死的情况出现。设置完成第一预设量后,则可以基于第一预设量由接口请求队列中进行接口取出及执行,从而保证了本申请一种高并发接口处理方法能够顺利实现。
本发明实施例提供的一种高并发接口处理方法,第一预设量为短时队列内能够允许并发执行的最大接口数量,长时队列内能够允许并行执行的最大接口数量为第二预设量,第一预设量及第二预设量的和为界面对应浏览器能够允许并发执行的最大接口数量。
需要说明的是,由于只要短时队列中不存在短时接口则会将新的短时接口加入至短时队列中进行并发执行,此时可能存在由短时队列中移入至长时队列中的接口正在执行,因此此时并发执行的接口的总数量应该是短时队列中正在执行的接口数量及长时接口中正在执行的接口数量的总和,如上述实施例,一般浏览器都具有最大接口数量,如果并发执行的接口数量超过该最大接口数量,则很可能会出现界面卡死的情况;因此,本实施例中为了避免出现界面卡死的情况,需要使得某时刻并发执行的接口的总数量、也即同一时刻短时队列中正在执行的接口数量及长时接口中正在执行的接口数量的总和小于或者等于浏览器的最大接口数量,而为了充分利用浏览器的并发执行接口能力,本实施例中设置为某时刻并发执行的接口的总数量等于浏览器的最大接口数量,也即短时队列能够允许并发执行的最大接口数量及长时队列能够允许并发执行的最大接口数量的总和等于浏览器能够允许并发执行的最大接口数量。
另外,短时队列及长时队列允许并发执行的最大接口数量可以根据实际需要进行设定,如当前最新的浏览器如Chrome、IE等,最大接口数量基本都是6个,则短时队列最大接口数量可以为4个,长时队列最大接口数量可以为2个,也可以短时队列最大接口数量及长时队列最大接口数量均为3个。其中,在长时队列最大接口数量小于短时队列最大接口数量时,可能出现需要由短时队列中移入至长时队列中的接口的数量大于长时队列的最大接口数量的情况,此时可以额外设置一个长时接口等待队列,以将需要由短时队列中移入至长时队列中多于长时接口队列最大接口数量的接口作为长时接口先移入至长时接口等待队列中,待长时队列中允许加入新的接口后,再由长时接口等待队列中取出长时接口加入至长时队列中执行;当然也可以根据实际需要进行其他设定,均在本发明的保护范围之内。
本发明实施例提供的一种高并发接口处理方法,将接口作为短时接口加入至短时队列中,可以包括:
为接口设置与短时队列对应的标记;
将短时接口作为长时接口加入至长时队列中,包括:
将短时接口的标记修改为与长时队列对应的标记。
需要说明的是,本实施例中为了使得实现方式更加简便,可以通过为对应接口设置长时队列对应标记或者短时队列对应标记的方式,将对应接口加入长时队列或者短时队列。而长时队列对应标记及短时队列对应标记具体可以根据实际需要进行设定,只要能将两者区分开均在本发明的保护范围之内。
本发明实施例提供的一种高并发接口处理方法,还可以包括:
为短时接口设置对应的短时锁,以指示短时锁基于对应短时接口在第一响应时间内能否响应的结果进行对应的操作;为长时接口设置对应的长时锁,以指示长时所基于对应长时接口在第二响应时间内能否响应的结果进行对应的操作。
需要说明的是,为了使得本发明的实现方式更加简便,可以通过设置短时锁及长时锁的方式实现对对应短时接口及长时接口的处理,具体来说,为短时接口设置短时锁后,短时锁会自动监控相应短时接口,以如果短时接口在第一响应时间内能够响应,则将短时接口移出短时队列,并将对应的响应数据提供给界面,如果短时接口在第一响应时间内无法响应,则将短时接口作为长时接口移入至长时队列中继续执行;为长时接口设置长时锁后,长时锁会自动监控相应长时接口,以如果长时接口在第二响应时间内能够响应,则将长时接口移出长时队列,并将对应的响应数据提供给界面,如果长时接口在第二响应时间内无法响应,则将长时接口作为待执行的接口加入至接口请求队列中。
在一种具体实现场景中,本发明实施例提供的一种高并发接口处理方法可以是通过三个区域实现的,包括界面操作区、逻辑判断区及数据缓存区,具体如图2所示,其中,新数据即当前得到的响应数据,而旧数据为上一次得到的响应数据;在数据请求队列中接收到待执行的接口后,准备进入逻辑判断区,逻辑判断区用来处理数据请求队列中的接口,在逻辑判断区,设置一个短时队列和一个长时队列;其中,短时队列同时处理最多4个接口,长时队列同时处理最多2个接口;从接口请求队列里先取出4个接口,压入短时队列中,并给每个接口都加一个短时锁,短时锁设定超时时间(timeout)为3秒,短时锁的判断逻辑这样处理:在3秒内响应的接口,移出短时队列,并将接口及响应数据(response)放入数据缓存区,即利用浏览器缓存,若超时(即在3秒内没有响应)则将该接口放入长时队列。进入长时队列的接口,需要加上长时锁,长时锁的超时时间(timeout)设为20秒,长时锁的判断逻辑:在20秒内能够响应,则移出长时队列,并将接口和数据放入数据缓存区,否则移出该接口,并重新调用该接口,将该接口加入待执行接口请求队列中。通过接口锁和接口队列相互配合,可以响应速度快的接口和慢的接口分开执行,充分利用浏览器的并发请求限制,使接口快速执行,避免因接口延迟造成界面卡死。其次,数据到达数据缓存区后,将数据转发到数据更新模块,即数据更新方法;数据更新方法的作用是,将一个接口的最新数据与上一次的数据比较,若数据完全没有发生变化,则不提供给界面,使界面继续保持上次的显示,若数据有变化,则传递给界面,使界面显示发生改变。此举是为了减少界面更新频率,防止界面抖动,减轻界面压力。
可见,本发明从界面角度解决了高并发请求接口的问题,使得高并发接口能够快速执行。并且本发明是在不改变后台接口和框架的前提下,基于在后台已经固化的情况下进行的界面开发,无法改动后台环境,无法改善现有的网络条件的情况下,避免界面卡死,提高界面响应速度,提高了接口的并发效率,减少了界面抖动。
本发明实施例还提供了一种高并发接口处理装置,如图3所示,可以包括:
加入队列模块11,用于:将从界面传来的待执行的接口均加入至接口请求队列中;
短时响应模块12,用于:由接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,如果短时接口在第一响应时间内能够响应,则将短时接口移出短时队列,并将对应的响应数据提供给界面,如果短时接口在第一响应时间内无法响应,则将短时接口作为长时接口移入至长时队列中继续执行;并在确定出短时队列中无接口时返回执行由接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行的步骤;
长时响应模块13,用于:如果长时接口在第二响应时间内能够响应,则将长时接口移出长时队列,并将对应的响应数据提供给界面,如果长时接口在第二响应时间内无法响应,则将长时接口作为待执行的接口加入至接口请求队列中;其中,第二响应时间大于第一响应时间。
本发明实施例提供的一种高并发接口处理装置,还可以包括:
缓存模块,用于:如果长时接口在第二响应时间内能够响应,则判断数据缓存区中是否存在与该能够响应的长时接口对应的响应数据,如果是,则利用该能够响应的长时接口当前得到的响应数据替换数据缓存区中缓存的对应响应数据,如果否,则将该能够响应的长时接口当前得到的响应数据缓存至数据缓存区中;
对应的,装置还可以包括:
提供模块,用于:如果长时接口在第二响应时间内无法响应,则将数据缓存区中与该无法响应的长时接口对应的响应数据提供给界面。
本发明实施例还提供了一种高并发接口处理装置,还可以包括:
判断模块,用于:将响应数据提供给界面之前,判断当前执行任一接口得到的响应数据与上次执行该任一接口得到的响应数据是否相同,如果是,则控制界面继续保持与上次执行该任一接口得到的响应数据对应的显示,如果否,则将当前执行该任一接口得到的响应数据提供给界面进行显示。
本发明实施例还提供了一种高并发接口处理装置,短时响应模块可以包括:
短时响应单元,用于:如果接口请求队列中待执行的接口的数量不大于第一预设量,则将接口请求队列中全部待执行的接口均取出,并加入至短时队列中并发执行;如果接口请求队列中待执行的接口的数量大于第一预设量,则将接口请求队列中第一预设量的接口取出,并加入至短时队列中并发执行。
本发明实施例还提供了一种高并发接口处理装置,第一预设量为短时队列内能够允许并发执行的最大接口数量,长时队列内能够允许并行执行的最大接口数量为第二预设量,第一预设量及第二预设量的和为界面对应浏览器能够允许并发执行的最大接口数量。
本发明实施例还提供了一种高并发接口处理装置,短时响应模块可以包括:
短时队列加入单元,用于:为接口设置与短时队列对应的标记;
长时队列响应模块可以包括:
长时队列加入单元,用于:将短时接口的标记修改为与长时队列对应的标记。
将接口作为短时接口加入至短时队列中,还可以包括:
锁设置模块,用于:为短时接口设置对应的短时锁,以指示短时锁基于对应短时接口在第一响应时间内能否响应的结果进行对应的操作;为长时接口设置对应的长时锁,以指示长时所基于对应长时接口在第二响应时间内能否响应的结果进行对应的操作。
本发明实施例还提供了一种高并发接口处理设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项高并发接口处理方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项高并发接口处理方法的步骤。
需要说明的是,本发明实施例提供的一种高并发接口处理装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种高并发接口处理方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种高并发接口处理方法,其特征在于,包括:
将从界面传来的待执行的接口均加入至接口请求队列中;
由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,如果所述短时接口在第一响应时间内能够响应,则将所述短时接口移出所述短时队列,并将对应的响应数据提供给所述界面,如果所述短时接口在所述第一响应时间内无法响应,则将所述短时接口作为长时接口移入至长时队列中继续执行;并在确定出所述短时队列中无接口时返回执行由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行的步骤;
如果所述长时接口在第二响应时间内能够响应,则将所述长时接口移出所述长时队列,并将对应的响应数据提供给所述界面,如果所述长时接口在所述第二响应时间内无法响应,则将所述长时接口作为待执行的接口加入至所述接口请求队列中;其中,所述第二响应时间大于所述第一响应时间。
2.根据权利要求1所述的方法,其特征在于,还包括:
如果所述长时接口在所述第二响应时间内能够响应,则判断数据缓存区中是否存在与该能够响应的长时接口对应的响应数据,如果是,则利用该能够响应的长时接口当前得到的响应数据替换所述数据缓存区中缓存的对应响应数据,如果否,则将该能够响应的长时接口当前得到的响应数据缓存至所述数据缓存区中;
对应的,所述方法还包括:
如果所述长时接口在所述第二响应时间内无法响应,则将所述数据缓存区中与该无法响应的长时接口对应的响应数据提供给所述界面。
3.根据权利要求2所述的方法,其特征在于,将响应数据提供给所述界面之前,还包括:
判断当前执行任一接口得到的响应数据与上次执行该任一接口得到的响应数据是否相同,如果是,则控制界面继续保持与上次执行该任一接口得到的响应数据对应的显示,如果否,则将当前执行该任一接口得到的响应数据提供给所述界面进行显示。
4.根据权利要求3所述的方法,其特征在于,由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,包括:
如果所述接口请求队列中待执行的接口的数量不大于第一预设量,则将所述接口请求队列中全部待执行的接口均取出,并加入至所述短时队列中并发执行;如果所述接口请求队列中待执行的接口的数量大于所述第一预设量,则将所述接口请求队列中第一预设量的接口取出,并加入至所述短时队列中并发执行。
5.根据权利要求4所述的方法,其特征在于,所述第一预设量为所述短时队列内能够允许并发执行的最大接口数量,所述长时队列内能够允许并行执行的最大接口数量为第二预设量,所述第一预设量及所述第二预设量的和为所述界面对应浏览器能够允许并发执行的最大接口数量。
6.根据权利要求5所述的方法,其特征在于,将接口作为短时接口加入至所述短时队列中,包括:
为所述接口设置与所述短时队列对应的标记;
将所述短时接口作为长时接口加入至所述长时队列中,包括:
将所述短时接口的标记修改为与所述长时队列对应的标记。
7.根据权利要求6所述的方法,其特征在于,还包括:
为所述短时接口设置对应的短时锁,以指示所述短时锁基于对应短时接口在所述第一响应时间内能否响应的结果进行对应的操作;为所述长时接口设置对应的长时锁,以指示所述长时所基于对应长时接口在所述第二响应时间内能否响应的结果进行对应的操作。
8.一种高并发接口处理装置,其特征在于,包括:
加入队列模块,用于:将从界面传来的待执行的接口均加入至接口请求队列中;
短时响应模块,用于:由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行,如果所述短时接口在第一响应时间内能够响应,则将所述短时接口移出所述短时队列,并将对应的响应数据提供给所述界面,如果所述短时接口在所述第一响应时间内无法响应,则将所述短时接口作为长时接口移入至长时队列中继续执行;并在确定出所述短时队列中无接口时返回执行由所述接口请求队列中取多个接口作为短时接口加入至短时队列中并发执行的步骤;
长时响应模块,用于:如果所述长时接口在第二响应时间内能够响应,则将所述长时接口移出所述长时队列,并将对应的响应数据提供给所述界面,如果所述长时接口在所述第二响应时间内无法响应,则将所述长时接口作为待执行的接口加入至所述接口请求队列中;其中,所述第二响应时间大于所述第一响应时间。
9.一种高并发接口处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述高并发接口处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述高并发接口处理方法的步骤。
CN201911089954.3A 2019-11-08 2019-11-08 一种高并发接口处理方法、装置、设备及存储介质 Pending CN110888704A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911089954.3A CN110888704A (zh) 2019-11-08 2019-11-08 一种高并发接口处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911089954.3A CN110888704A (zh) 2019-11-08 2019-11-08 一种高并发接口处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN110888704A true CN110888704A (zh) 2020-03-17

Family

ID=69747197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911089954.3A Pending CN110888704A (zh) 2019-11-08 2019-11-08 一种高并发接口处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110888704A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328335A (zh) * 2020-11-30 2021-02-05 深圳前海微众银行股份有限公司 一种并发请求超时的诊断方法及装置、设备、存储介质
CN113434228A (zh) * 2021-06-21 2021-09-24 青岛海尔科技有限公司 页面的请求方法、装置、存储介质及电子装置
CN113590410A (zh) * 2021-06-20 2021-11-02 济南浪潮数据技术有限公司 一种资源请求方法、系统、设备以及介质
CN113885902A (zh) * 2021-08-23 2022-01-04 北京房江湖科技有限公司 一种应用程序界面更新方法
CN115471926A (zh) * 2022-08-17 2022-12-13 力神(青岛)新能源有限公司 一种电动汽车电池管理系统的数据解析优化方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100011129A1 (en) * 2008-07-14 2010-01-14 Fujitsu Limited Storage device and control unit
CN103685387A (zh) * 2012-09-12 2014-03-26 中国移动通信集团公司 一种调度http请求的方法和浏览器装置
CN104317653A (zh) * 2014-10-27 2015-01-28 浪潮(北京)电子信息产业有限公司 加速短作业处理的调度方法和装置
CN106899511A (zh) * 2017-02-22 2017-06-27 郑州云海信息技术有限公司 异步消息交互方法和系统
CN108073580A (zh) * 2016-11-08 2018-05-25 北京国双科技有限公司 一种基于页面并发请求的处理方法及装置
CN108366021A (zh) * 2018-01-12 2018-08-03 北京奇虎科技有限公司 一种处理并发网页访问业务的方法及系统
WO2019001256A1 (zh) * 2017-06-25 2019-01-03 平安科技(深圳)有限公司 高并发数据处理方法、装置及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100011129A1 (en) * 2008-07-14 2010-01-14 Fujitsu Limited Storage device and control unit
CN103685387A (zh) * 2012-09-12 2014-03-26 中国移动通信集团公司 一种调度http请求的方法和浏览器装置
CN104317653A (zh) * 2014-10-27 2015-01-28 浪潮(北京)电子信息产业有限公司 加速短作业处理的调度方法和装置
CN108073580A (zh) * 2016-11-08 2018-05-25 北京国双科技有限公司 一种基于页面并发请求的处理方法及装置
CN106899511A (zh) * 2017-02-22 2017-06-27 郑州云海信息技术有限公司 异步消息交互方法和系统
WO2019001256A1 (zh) * 2017-06-25 2019-01-03 平安科技(深圳)有限公司 高并发数据处理方法、装置及计算机可读存储介质
CN108366021A (zh) * 2018-01-12 2018-08-03 北京奇虎科技有限公司 一种处理并发网页访问业务的方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
操作系统编委会: "《操作系统》", 31 August 2007 *
王君妍: "一种针对短时高并发小型Web应用系统的并发控制方法", 《中国教育网络》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328335A (zh) * 2020-11-30 2021-02-05 深圳前海微众银行股份有限公司 一种并发请求超时的诊断方法及装置、设备、存储介质
CN112328335B (zh) * 2020-11-30 2023-03-21 深圳前海微众银行股份有限公司 一种并发请求超时的诊断方法及装置、设备、存储介质
CN113590410A (zh) * 2021-06-20 2021-11-02 济南浪潮数据技术有限公司 一种资源请求方法、系统、设备以及介质
CN113590410B (zh) * 2021-06-20 2023-12-22 济南浪潮数据技术有限公司 一种资源请求方法、系统、设备以及介质
CN113434228A (zh) * 2021-06-21 2021-09-24 青岛海尔科技有限公司 页面的请求方法、装置、存储介质及电子装置
CN113885902A (zh) * 2021-08-23 2022-01-04 北京房江湖科技有限公司 一种应用程序界面更新方法
CN113885902B (zh) * 2021-08-23 2022-10-11 贝壳找房(北京)科技有限公司 一种应用程序界面更新方法
CN115471926A (zh) * 2022-08-17 2022-12-13 力神(青岛)新能源有限公司 一种电动汽车电池管理系统的数据解析优化方法

Similar Documents

Publication Publication Date Title
CN110888704A (zh) 一种高并发接口处理方法、装置、设备及存储介质
US11768694B2 (en) Content sharing method, device, terminal and storage medium
US20190109920A1 (en) Browser resource pre-pulling method, terminal and storage medium
CN107450971B (zh) 任务处理方法及装置
US20150205671A1 (en) Dynamic Checkpointing Systems and Methods
CN109981737B (zh) 一种网络请求的处理方法、装置、终端及存储介质
EP3817255A1 (en) Data verification method and apparatus, and storage medium
CN112991635B (zh) 智能柜的存取件方法及装置
CN110532205A (zh) 数据传输方法、装置、计算机设备和计算机可读存储介质
WO2017101332A1 (zh) 后台任务触发方法及装置
US10891171B2 (en) Method, apparatus and device for transitioning between data and control core and migrating clock task from data core to control core
US9507650B2 (en) Power efficient callback patterns
CN111414227B (zh) 一种读取镜像数据的方法、装置以及计算设备
CN112840309B (zh) 命令调度方法、装置及存储介质
CN110515553B (zh) 一种卷删除方法及设备
US20130346701A1 (en) Replacement method and apparatus for cache
CN114268670A (zh) 基于时间触发的以太网异步消息处理系统及方法
CN114978965A (zh) 一种芯片高负载情况下can诊断报文与网络报文处理方法、系统、电子设备和存储介质
CN109284188B (zh) 一种缓冲数组维护方法、装置、终端及可读介质
CN111428171A (zh) 接口调用处理方法和系统
CN111860845A (zh) 一种提高推理平台性能的方法和设备
CN110928827A (zh) 一种访问PCIe设备的优化的方法和设备
CN116932248A (zh) 一种基于线程和协程的事件处理方法、装置和终端设备
CN117828205A (zh) 一种前端页面消息监听方法
CN108363633B (zh) 控制Activity数量的方法、装置、设备及可读存储介质

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