CN111428171A - 接口调用处理方法和系统 - Google Patents

接口调用处理方法和系统 Download PDF

Info

Publication number
CN111428171A
CN111428171A CN202010207601.5A CN202010207601A CN111428171A CN 111428171 A CN111428171 A CN 111428171A CN 202010207601 A CN202010207601 A CN 202010207601A CN 111428171 A CN111428171 A CN 111428171A
Authority
CN
China
Prior art keywords
target
server
function
queue
data
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.)
Granted
Application number
CN202010207601.5A
Other languages
English (en)
Other versions
CN111428171B (zh
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.)
Zhengzhou Xizhi Information Technology Co ltd
Original Assignee
Zhengzhou Xizhi Information 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 Zhengzhou Xizhi Information Technology Co ltd filed Critical Zhengzhou Xizhi Information Technology Co ltd
Priority to CN202010207601.5A priority Critical patent/CN111428171B/zh
Publication of CN111428171A publication Critical patent/CN111428171A/zh
Application granted granted Critical
Publication of CN111428171B publication Critical patent/CN111428171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种接口调用处理方法和系统,其中,第一服务器获得浏览器发送的接口调用请求,该接口调用请求用于请求调用网页中网页元素的接口;第一服务器确定调用该接口所需执行的调用函数;第一服务器将该接口对应的调用函数存储到第一队列中;第二服务器从该第一队列中获取调用函数;第二服务器执行获取到的调用函数,得到目标网页元素的数据;第一服务器将第二服务器得到的该目标网页元素的数据返回目标浏览器,该目标浏览器为请求调用该目标网页元素的接口的浏览器。本申请的方案可以有利于提高针对网页元素的接口调用的响应速度,并有利于提高网页请求的响应速度。

Description

接口调用处理方法和系统
技术领域
本申请涉及网络通信技术领域,更具体的说是涉及一种接口调用处理方法和系统。
背景技术
浏览器可以从服务器获取网页数据,并在浏览器中展现网页数据。
其中,在浏览器向服务器发出获取网页数据的网页请求之后,服务器需要基于该网页请求分别确定并获取组成该网页的各个部分的数据,并将包含网页完整内容的网页数据反馈给浏览器。然而,服务器接收到网页请求之后需要经过较为复杂的数据处理才可以向浏览器反馈网页数据,导致网页请求的响应时间较长。
发明内容
有鉴于此,本申请提供了一种接口调用处理方法和系统,以有利于提高针对网页元素的接口调用的响应速度,并有利于提高网页请求的响应速度。
为实现上述目的,本申请提供如下技术方案:
一方面,本申请提供了一种接口调用处理方法,包括:
第一服务器获得浏览器发送的接口调用请求,所述接口调用请求用于请求调用网页中网页元素的接口;
第一服务器确定调用所述接口所需执行的调用函数;
第一服务器将所述接口对应的调用函数存储到第一队列中;
第二服务器从所述第一队列中获取调用函数;
第二服务器执行获取到的调用函数,得到目标网页元素的数据;
第一服务器将第二服务器得到的所述目标网页元素的数据返回目标浏览器,所述目标浏览器为请求调用所述目标网页元素的接口的浏览器。
优选的,所述第二服务器执行获取到的调用函数,得到目标网页元素的数据,包括:
所述第二服务器将从所述第一队列中获取的调用函数存储到所述第二服务器中的第二队列;
所述第二服务器从所述第二队列获取待执行的目标调用函数,并执行所述目标调用函数,得到目标网页元素的数据。
优选的,所述第二服务器从所述第二队列获取待执行的目标调用函数,并执行所述目标调用函数,得到目标网页元素的数据,包括:
所述第二服务器通过所述第二队列关联的执行函数从所述第二队列中获取待执行的第一目标调用函数,执行所述第一目标调用函数,得到所述第一目标调用函数对应的目标网页元素的数据;
在所述第二服务器通过所述执行函数执行所述第一目标调用函数的过程中,如果通过所述第二服务器运行的异步检测线程检测到所述第二队列中仍存在尚未执行的调用函数,通过所述异步检测线程从所述第二队列中获取待执行的第二目标调用函数,执行所述第二目标调用函数,得到所述第二目标调用函数对应的目标网页元素的数据。
优选的,该方法还包括:
所述第二服务器将得到的目标网页元素的数据存储到所述第二服务器的第三队列中;
所述第一服务器将第二服务器得到的所述目标网页元素的数据返回目标浏览器,包括:
所述第一服务器从所述第三队列中取出目标网页元素的数据,并返回给目标浏览器。
优选的,所述第一服务器将所述接口对应的调用函数存储到第一队列中之后,还包括:
所述第一服务器向所述浏览器返回调用响应指示,以便所述浏览器在接收到所述调用响应指示后,向所述第一服务器发送接口数据请求,所述调用响应指示表征所述第一服务器正在响应所述浏览器请求的接口调用;
所述第一服务器从所述第三队列中取出目标网页元素的数据,并返回给目标浏览器,包括:
所述第一服务器在接收到目标浏览器发送的接口数据请求后,如从所述第三队列中取出所述目标网页元素的数据,则将所述目标网页元素的数据发送给所述目标浏览器。
又一方面,本申请还提供了一种接口调用处理系统,包括:
第一服务器和第二服务器;
其中,第一服务器包括请求接收单元,函数确定单元和函数存储单元;
其中,所述请求接收单元,用于获得浏览器发送的接口调用请求,所述接口调用请求用于请求调用网页中网页元素的接口;
所述函数确定单元,用于确定调用所述接口所需执行的调用函数;
所述函数存储单元,用于将所述接口对应的调用函数存储到第一队列中;
第二服务器包括:函数获取单元和函数执行单元;
所述函数获取单元,用于从所述第一队列中获取调用函数;
所述函数执行单元,用于执行获取到的调用函数,得到目标网页元素的数据;
第一服务器还包括:数据返回单元,用于将第二服务器得到的所述目标网页元素的数据返回目标浏览器,所述目标浏览器为请求调用所述目标网页元素的接口的浏览器。
优选的,所述函数执行单元,包括:
队列加入子单元,用于将从所述第一队列中获取的调用函数存储到所述第二服务器中的第二队列;
函数执行子单元,用于从所述第二队列获取待执行的目标调用函数,并执行所述目标调用函数,得到目标网页元素的数据。
优选的,所述函数执行子单元,包括:
第一函数执行子单元,用于通过所述第二队列关联的执行函数从所述第二队列中获取待执行的第一目标调用函数,执行所述第一目标调用函数,得到所述第一目标调用函数对应的目标网页元素的数据;
第二函数执行子单元,用于在通过所述执行函数执行所述第一目标调用函数的过程中,如果通过运行的异步检测线程检测到所述第二队列中仍存在尚未执行的调用函数,通过所述异步检测线程从所述第二队列中获取待执行的第二目标调用函数,执行所述第二目标调用函数,得到所述第二目标调用函数对应的目标网页元素的数据。
优选的,所述第二服务器还包括:数据存储单元,用于将所述函数执行单元得到的目标网页元素的数据存储到所述第二服务器的第三队列中;
所述数据返回单元,具体为,用于从所述第三队列中取出目标网页元素的数据,并返回给目标浏览器。
优选的,所述第一服务器,还包括:响应指示单元,用于在所述函数确定单元将所述接口对应的调用函数存储到第一队列中之后,向所述浏览器返回调用响应指示,以便所述浏览器在接收到所述调用响应指示后,向所述第一服务器发送接口数据请求,所述调用响应指示表征所述第一服务器正在响应所述浏览器请求的接口调用;
所述数据返回单元具体为,用于在接收到目标浏览器发送的接口数据请求后,如从所述第三队列中取出所述目标网页元素的数据,则将所述目标网页元素的数据发送给所述目标浏览器。
经由上述的技术方案可知,在本申请实施例中,第一服务器在接收到浏览器发送的调用网页中网页元素的接口调用请求之后,只需要确定出调用该接口所需执行的调用函数并将该调用函数存储到队列中,而队列中的调用函数则会由第二服务器依次执行,从而实现了服务器系统对接口调用请求的异步处理,有利于提高服务器系统针对调用网页元素的接口的响应速度,从而有利于提高调用网页中各网页元素的接口的响应速度,进而有利于提高整个网页的响应速度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请的方案所使用的一种场景的一种组成架构示意图;
图2示出了本申请的接口调用处理方法一个实施例的流程示意图;
图3示出了本申请的接口调用处理方法又一个实施例的流程示意图;
图4示出了本申请的接口调用处理系统的一种组成结构示意图。
具体实施方式
本申请的方案适用于浏览器向服务器请求网页的场景,以提高服务器系统影响浏览器的网页请求。
可以理解的是,网页一般都多个组成部分构成,组成网页的每个部分可以称为一个网页元素。如,网页中可以有列表、表格以及控件等网页元素。如果浏览器每次向服务器请求网页之后,服务器均在获取到网页的全部数据之后再将网页的全部数据反馈给浏览器,必然导致网页请求的响应时间过长,使得浏览器侧的用户需要等待较长时间才可以看到展现出的网页。
为了减少用户等待网页展现的时长,提高网页展现效果,存在通过如下方式处理网页请求并实现网页展现的需求:
在该种网页请求过程中,服务器依次响应浏览器针对网页中各个组成部分的接口的调用请求,并分批向浏览器反馈网页中各个组成部分的数据。在该种情况下,浏览器在接收到网页中一些组成部分的数据之后,可以先加载已接收到的网页中相关组成部分的数据,以有利于提高网页展现出来的速度,减少用户等待网页展现的时长。同时,在浏览器加载网页中已获得的组成部分的数据的同时,浏览器还需继续向服务器请求该网页中其他尚未反馈的组成部分数据,以便最终在用户无感知的情况下,完成整个网页的完整展现。
在以上该种请求网页数据的需求下,服务器会接到浏览器针对同一网页中各个组成部分对应接口的调用请求,然后分别响应各个接口的调用请求并处理,以为浏览器返回该网页中相应组成部分的数据。
然而,服务器同一时间可能会接收到不同浏览器发出针对不同网页中不同接口的大量接口调用请求,而处理每个接口调用请求均需要耗费一定的时间,当接口调用请求过多时,很容易由于接口调用请求处理过慢而影响接口调用的响应速度,甚至导致接口阻塞。
为了在以上网页调用需求下,能够进一步提高针对网页相关接口的调用请求的响应速度,本申请提出了异步处理接口调用请求方式,以有利于提高接口调用请求的处理效率,进而有利于提高接口调用的响应速度。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于先对本申请的方案所适用的服务器系统进行介绍。如图1所示,其示出了本申请服务器系统的组成架构的一种示意图。
由图1可知,该服务器系统包括至少一个第一服务器101以及至少一个第二服务器102。
其中,第一服务器为服务器系统中用于与浏览器建立通信连接的服务器。该第一服务器可以接收浏览器针对网页中可调用的相关接口的接口调用请求。
第二服务器是辅助第一服务器处理接口调用请求的服务器,其中,每台第一服务器对应有至少一个第二服务器,第一服务器与第一服务器对应的第二服务器可以共用完成对接口调用请求的处理,并实现接口调用请求的异步处理。
结合以上内容,下面结合流程图进行介绍。
如图2,其示出了本申请一种接口调用处理方法一个实施例的流程示意图,本实施例的方法应用于如上提到的服务器系统,该服务器系统包括第一服务器和第二服务器。本实施例的方法可以包括:
S201,第一服务器获得浏览器发送的接口调用请求。
其中,接口调用请求用于请求调用网页中网页元素的接口。其中,网页元素可以是组成网页的组成部分,每个网页由至少一个网页元素组成,在本申请实施例中,网页中各个网页元素对应了服务器系统的一个接口,通过调用该网页元素的接口可以实现获取该网页元素的数据。
如,假设浏览器请求展现的网页中包含列表和表格。那么,浏览器可以向第一服务器发送调用该网页中列表的接口,以请求获得该列表的数据,并以便于在网页中展现该表格。相应的,浏览器还可以请求调用网页中该表格对应的接口,以获得该表格的数据,以便在网页中展现出该表格。
可以理解的是,浏览器每次可以发送针对网页中不同网页元素的一个或者多个接口调用请求,也可以是在一个接口调用请求中请求调用一个或者多个网页元素的接口,第一服务器针对请求调用的每个接口所执行的操作过程均相同。
S202,第一服务器确定调用该接口所需执行的调用函数。
其中,接口对应的调用函数是指完成该接口调用所需执行的函数,通过执行该调用函数可以调用该接口对应的网络元素的数据。
可以理解的是,为了完成不同网页中不同网页元素对应接口的调用,第一服务器中可以预先配置了实现不同接口调用所需的调用函数。如,不同接口的接口标识可以对应不同的接口函数,根据接口调用请求所请求调用的接口的标识(如名称等),可以确定出调用该接口所需执行的调用函数。
S203,第一服务器将该接口对应的调用函数存储到第一队列中。
可以理解的是,在第一服务器确定出调用接口所需执行的调用函数之后,如果由该第一服务器执行该调用函数,那么第一服务器需要处理的数据量较大,使得第一服务器可能无法较为高效的影响大批量的接口调用。
为了使得接口调用过程可以实现异步化,该第一服务器确定出调用函数之后,并不需要执行该调用函数,而是将该调用函数加入到队列中。其中,为了便于区分,将第一服务器中用于缓存调用函数的队列称为第一队列。
该第一队列的队列类型可以不加限制,如可以为基于Redis的任务队列,也可以为其他类型的任务队列。
S204,第二服务器从第一队列中获取调用函数。
如,可以按照第一队列中调用函数的先后顺序,依次从第一队列中获取调用函数。
其中,第二服务器从第一队列中获取调用函数的条件可以有多种。如,第二服务器可以按照设定的周期(或者频率),周期性的从第一队列中获取调用函数,例如,每隔0.1毫秒从第一队列获取一次调用函数。又如,第二服务器还可以基于第一队列中调用函数的数量,来确定从第一队列中获取调用函数的时间或者频率,例如,只要第一队列中调用函数的数量超过设定阈值,则第二服务器会持续从第一队列中获取调用函数;如果未超过设定阈值,则可以按照设定频率从第一队列中获取调用函数。
S205,第二服务器执行获取到的调用函数,得到目标网页元素的数据。
可以理解的是,调用函数是用于实现对网页元素的接口进行调用的函数,因此,通过执行该调用函数可以实现获得相应接口对应的网页元素的数据。
需要说明的是,由于第一服务器每次都将确定的调用函数放入第一队列,因此,第一队列中可能会有多个等待执行的调用函数,因此,第二服务器会从第一队列中获取的调用函数一般情况下都不是第一服务器当前时刻放入到该第一队列中的调用函数。相应的,第二服务器执行获取到的调用函数所得到的网页元素的数据并不一定是步骤S201中该浏览器请求调用的网页元素的数据,因此,为了便于区分,将第二服务器执行获得到的调用函数所得到的网页元素的数据称为目标网页元素的数据。
可见,本申请将针对同一个网页元素的接口调用过程所涉及到的确定调用函数与执行调用函数这两个步骤,分别在服务器系统的两台不同的服务器上完成,避免两个动作都由同一台服务器完成,也就降低了由于单台服务器的数据处理量过大,而使得接口调用的响应速度过慢的风险。
作为一种可选方式,为了使得第二服务器能够更高效的处理调用函数,第二服务器也可以将从第一服务器获取调用函数与执行调用函数的过程分离。具体的,第二服务器可以将从第一队列中获取到的调用函数存储到第二服务器中的第二队列中。相应的,第二服务器可以从第二队列中获取待执行的目标调用函数,并执行获取到的目标调用函数,以得到目标网页元素数据。
其中,为了便于区分,将从第二队列中获取到的待执行的调用函数称为目标调用函数。
其中,第二队列也可以为任意形式的任务队列。可选的,为了能够实现异步处理该第二队列中的调用函数,该第二队列可以为异步任务队列,如基于Celery的任务队列。
可以理解的是,第二服务器将从第一队列中获取到的调用函数存储到第二队列,这样,第二服务器获取调用函数不会受调用函数执行状况的影响;而且,由于第二队列中存储有调用函数,第二服务器可以较为快速的取出调用函数并执行,无需等待获取调用函数后再执行调用函数,有利于提高调用函数的处理效率。
S206,第一服务器将第二服务器得到的目标网页元素的数据返回目标浏览器。
其中,目标浏览器为请求调用目标网页元素的接口的浏览器。
可以理解的是,由于步骤S205中得到的目标网页元素的数据可以是当前时刻之前任意已发送接口调用请求的浏览器所请求的网页元素,因此,为了便于与步骤S201中的浏览器区分,将请求调用该目标网页元素对应接口的浏览器称为目标浏览器。
例如,在时刻1,第一服务器接收到浏览器1发送的对网页1中接口s1的调用请求。第一服务器确定出接口s1的调用函数并放入第一队列,而此时,第一队列中除了有新加入的接口s1的调用函数外,还存在接口s2和接口s3的调用函数。在该种情况下,第二服务器从第一队列获取到接口s3的调用函数并执行,得到的是接口s3对应的网页元素的数据,而请求调用接口s3的是浏览器3,则第一服务器会将该接口s3对应的网页元素的数据返回给浏览器3。
其中,第一服务器确定请求该目标网页元素的目标浏览器的方式可以有多种。如,第一服务器接收到浏览器的接口调用请求后,会存储该浏览器与所请求调用的接口的信息,而接口对应的调用函数可以表征出该调用函数所需执行的是针对哪个接口的调用。相应的,第二服务器获得到调用函数后,可以确定该调用函数对应的接口,在此基础上,第二服务器可以将执行该调用函数所得到的目标网页元素的数据之后,第一服务器可以从第二服务器获得该调用函数对应的接口信息,进而使得第一服务器基于该目标网页元素的数据所对应的接口,查询出请求调用该接口的目标浏览器。
又如,第一服务器可以针对浏览器的接口调用请求确定出调用函数之后,可以将调用函数与浏览器的标识关联存储到第一队列中。在此基础上,第二服务器获取调用函数的同时,可以得到该调用函数对应的浏览器的标识,相应的,在第二服务器执行调用函数后,可以将执行调用函数所得到的目标网页元素的数据与该浏览器的标识关联存储,以便于第一服务器确定目标浏览器。
当然,还可以有其他方式来确定该目标网页元素的数据所需返回给的目标浏览器,在此不加限制。
在本申请实施例中,第一服务器从第二服务器获取目标网页元素的数据的具体情况也可以有多种可能。如,第一服务器可以周期性从第二服务器请求已获得的目标网页元素的数据。
又如,第一服务器在确定出浏览器请求调用的接口的调用函数之后,该第一服务器还可以向该浏览器返回调用响应指示,该调用响应指示表征第一服务器正在响应该浏览器请求的接口调用。在该种情况下,浏览器在接收到该调用响应指示后,可以向第一服务器发送接口数据请求,该接口数据请求用于请求接口调用所得到的网页元素的数据。如,浏览器按照设定频率等设定规则,轮询请求该接口对应的网页元素的数据。在该种情况下,第一服务器可以响应于接口数据请求,查询第二服务器中是否存在该接口对应的网页元素的数据,如存在,则从第二服务器获取响应的网页元素的数据并返回给该浏览器。
又如,第二服务器也可以在得到目标网页元素的数据,或者存在尚未被第一服务器获取的目标网页元素的数据的情况下,通知第一服务器获取目标网页元素数据。当然,第二服务器也可以将得到的目标网页元素的数据发送给第一服务器。
作为一种可选方式,第二服务器在得到目标网页元素的数据之后,还可以将得到的目标网页元素的数据存储到该第二服务器的第三队列中。在该种情况下,该第一服务器可以从该第三队列中取出目标网页元素的数据,并返回给目标浏览器。
经由上述的技术方案可知,在本申请实施例中,第一服务器在接收到浏览器发送的调用网页中网页元素的接口调用请求之后,只需要确定出调用该接口所需执行的调用函数并将该调用函数存储到队列中,而队列中的调用函数则会由第二服务器执行,从而实现了服务器系统对接口调用请求的异步处理,有利于提高服务器系统针对调用网页元素的接口的响应速度,从而有利于提高调用网页中各网页元素的接口的响应速度,进而有利于提高整个网页的响应速度。
可以理解的是,由于第一服务器同一时间可能会接收到大量的接口调用请求,因此,同一时间会产生大量的需要执行的调用函数。为了提高调用函数的处理效率,在第二服务器侧也可以采用异步方式处理调用函数。如,参见图3,其示出了本申请一种接口调用处理方法又一个实施例的流程示意图,本实施例的方法可以包括:
S301,第一服务器获得浏览器发送的接口调用请求。
其中,接口调用请求用于请求调用网页中网页元素的接口。
S302,第一服务器确定调用该接口所需执行的调用函数。
S303,第一服务器将该接口对应的调用函数存储到第一队列中。
以上步骤S301到S303可以参见前面实施例的相关介绍,在此不再赘述。
S304,第一服务器向浏览器返回调用响应指示。
调用响应指示表征该第一服务器正在响应该浏览器请求的接口调用,以便该浏览器在接收到调用响应指示后,按照设定规则向第一服务器发送接口数据请求。
其中,该步骤S304为可选步骤,在实际应用中可以根据第一服务器向浏览器返回网页元素的数据的不同方式可以选择执行或者不执行。
S305,第二服务器从第一队列中获取调用函数。
可以理解的是,只有是第一队列中存在调用函数便可以执行该步骤S305,该步骤S305可以与前面几个步骤的顺序并不限于图3所示。
S306,第二服务器将获得的调用函数存储到第二服务器的第二队列中。
以上步骤S305和S306可以参见前面实施例的相关介绍,在此不再赘述。
S307,第二服务器通过该第二队列关联的执行函数从该第二队列中获取待执行的第一目标调用函数,执行该第一目标调用函数,得到该第一目标调用函数对应的目标网页元素的数据,并执行步骤S309。
其中,通过运行该执行函数可以从第二队列中取出调用函数,并通过该执行函数可以控制调用函数执行。其中,为了便于区分,将该执行函数从第二队列中取出的调用函数称为第一目标调用函数。
如,该第二队列可以为Celery的任务队列,该第二队列关联的执行函数可以为预先封装好的用于执行Celery的任务队列中的任务的函数。
S308,在第二服务器通过执行函数执行第一目标调用函数的过程中,如果通过该第二服务器运行的异步检测线程检测到该第二队列中仍存在尚未执行的调用函数,通过该异步检测线程从该第二队列中获取待执行的第二目标调用函数,执行该第二目标调用函数,得到该第二目标调用函数对应的目标网页元素的数据,并执行步骤S309。
可以理解的是,完成每个调用函数的执行均需要耗费一定的时长,而且针对有些较为复杂的接口调用,执行相应的调用函数所需耗费的时间会更长。为了避免由于单个调用函数执行耗时较长而导致接口阻塞,即,使得其他调用其他接口的调用函数需要等待较长时间才可以被执行,本申请中第二服务器侧还运行有与执行函数不同的异步检测线程。
其中,该异步检测线程可以再执行函数执行调用函数的过程中,从第二队列中取出待执行的其他调用函数并执行,从而可以提高第二队列中调用函数被执行的效率。为了便于区分,将异步检测线程从第二队列中取出的调用函数称为第二目标调用函数。
如,异步检测线程可以为基于Gevent的Popen创建的线程。借助Celery支持异步的机制,可以多进程处理任务,同时借助Gevent的Popen机制,创建线程,可以最终实现高效并发处理调用函数。
S309,第二服务器将得到的目标网页元素的数据存储到该第二服务器的第三队列中。
可以理解的是,通过步骤S307和S308得到的目标网页元素的数据均会存储到第三队列中,以便第一服务器轮询从第三队列中读取调取出的目标网页元素的数据。
S310,第一服务器接收到目标浏览器发送的接口数据请求。
该目标浏览器可以为任意已发送过接口调用请求且第一服务器已反馈接口响应指示的浏览器。
S311,如第一服务器从第三队列中取出该目标浏览器所请求的目标网页元素的数据,则将该目标网页元素的数据发送给该目标浏览器。
第一服务器可以从第三队列中取出目标网页元素的数据,如果存在该目标浏览器所请求的目标网页元素的数据,则可以反馈给该目标浏览器。
又一方面,本申请还提供了一种接口调用处理系统。如图4所示,其示出了本申请一种接口调用处理系统的一种组成结构示意图,本实施例的系统可以包括:
第一服务器40和第二服务器41;
其中,第一服务器40包括请求接收单元401,函数确定单元402和函数存储单元403;
其中,该请求接收单元401,用于获得浏览器发送的接口调用请求,所述接口调用请求用于请求调用网页中网页元素的接口;
所述函数确定单元402,用于确定调用所述接口所需执行的调用函数;
所述函数存储单元403,用于将所述接口对应的调用函数存储到第一队列中;
第二服务器41包括:函数获取单元411和函数执行单元412;
所述函数获取单元411,用于按照第一队列中调用函数的先后顺序,从所述第一队列中获取调用函数;
所述函数执行单元412,用于执行获取到的调用函数,得到目标网页元素的数据;
第一服务器还包括:数据返回单元404,用于将第二服务器得到的所述目标网页元素的数据返回目标浏览器,所述目标浏览器为请求调用所述目标网页元素的接口的浏览器。
在一种可能的实现方式中,所述函数执行单元412,包括:
队列加入子单元,用于将从所述第一队列中获取的调用函数存储到所述第二服务器中的第二队列;
函数执行子单元,用于从所述第二队列获取待执行的目标调用函数,并执行所述目标调用函数,得到目标网页元素的数据。
可选的,该函数执行子单元,包括:
第一函数执行子单元,用于通过所述第二队列关联的执行函数从所述第二队列中获取待执行的第一目标调用函数,执行所述第一目标调用函数,得到所述第一目标调用函数对应的目标网页元素的数据;
第二函数执行子单元,用于在通过所述执行函数执行所述第一目标调用函数的过程中,如果通过运行的异步检测线程检测到所述第二队列中仍存在尚未执行的调用函数,通过所述异步检测线程从所述第二队列中获取待执行的第二目标调用函数,执行所述第二目标调用函数,得到所述第二目标调用函数对应的目标网页元素的数据。
在又一种可能的实现方式中,该第二服务器还包括:数据存储单元,用于将所述函数执行单元得到的目标网页元素的数据存储到所述第二服务器的第三队列中;
相应的,第一服务器中的数据返回单元,具体为,用于从所述第三队列中取出目标网页元素的数据,并返回给目标浏览器。
可选的,该第一服务器,还包括:响应指示单元,用于在所述函数确定单元将所述接口对应的调用函数存储到第一队列中之后,向所述浏览器返回调用响应指示,以便所述浏览器在接收到所述调用响应指示后,按照设定规则向所述第一服务器发送接口数据请求,所述调用响应指示表征所述第一服务器正在响应所述浏览器请求的接口调用;
相应的,该数据返回单元具体为,用于在接收到目标浏览器发送的接口数据请求后,如从所述第三队列中取出所述目标网页元素的数据,则将所述目标网页元素的数据发送给所述目标浏览器。
对于装置实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另外,所描述系统和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种接口调用处理方法,其特征在于,包括:
第一服务器获得浏览器发送的接口调用请求,所述接口调用请求用于请求调用网页中网页元素的接口;
第一服务器确定调用所述接口所需执行的调用函数;
第一服务器将所述接口对应的调用函数存储到第一队列中;
第二服务器从所述第一队列中获取调用函数;
第二服务器执行获取到的调用函数,得到目标网页元素的数据;
第一服务器将第二服务器得到的所述目标网页元素的数据返回目标浏览器,所述目标浏览器为请求调用所述目标网页元素的接口的浏览器。
2.根据权利要求1所述的方法,其特征在于,所述第二服务器执行获取到的调用函数,得到目标网页元素的数据,包括:
所述第二服务器将从所述第一队列中获取的调用函数存储到所述第二服务器中的第二队列;
所述第二服务器从所述第二队列获取待执行的目标调用函数,并执行所述目标调用函数,得到目标网页元素的数据。
3.根据权利要求2所述的方法,其特征在于,所述第二服务器从所述第二队列获取待执行的目标调用函数,并执行所述目标调用函数,得到目标网页元素的数据,包括:
所述第二服务器通过所述第二队列关联的执行函数从所述第二队列中获取待执行的第一目标调用函数,执行所述第一目标调用函数,得到所述第一目标调用函数对应的目标网页元素的数据;
在所述第二服务器通过所述执行函数执行所述第一目标调用函数的过程中,如果通过所述第二服务器运行的异步检测线程检测到所述第二队列中仍存在尚未执行的调用函数,通过所述异步检测线程从所述第二队列中获取待执行的第二目标调用函数,执行所述第二目标调用函数,得到所述第二目标调用函数对应的目标网页元素的数据。
4.根据权利要求1所述的方法,其特征在于,还包括:
所述第二服务器将得到的目标网页元素的数据存储到所述第二服务器的第三队列中;
所述第一服务器将第二服务器得到的所述目标网页元素的数据返回目标浏览器,包括:
所述第一服务器从所述第三队列中取出目标网页元素的数据,并返回给目标浏览器。
5.根据权利要求4所述的方法,其特征在于,所述第一服务器将所述接口对应的调用函数存储到第一队列中之后,还包括:
所述第一服务器向所述浏览器返回调用响应指示,以便所述浏览器在接收到所述调用响应指示后,向所述第一服务器发送接口数据请求,所述调用响应指示表征所述第一服务器正在响应所述浏览器请求的接口调用;
所述第一服务器从所述第三队列中取出目标网页元素的数据,并返回给目标浏览器,包括:
所述第一服务器在接收到目标浏览器发送的接口数据请求后,如从所述第三队列中取出所述目标网页元素的数据,则将所述目标网页元素的数据发送给所述目标浏览器。
6.一种接口调用处理系统,其特征在于,包括:
第一服务器和第二服务器;
其中,第一服务器包括请求接收单元,函数确定单元和函数存储单元;
其中,所述请求接收单元,用于获得浏览器发送的接口调用请求,所述接口调用请求用于请求调用网页中网页元素的接口;
所述函数确定单元,用于确定调用所述接口所需执行的调用函数;
所述函数存储单元,用于将所述接口对应的调用函数存储到第一队列中;
第二服务器包括:函数获取单元和函数执行单元;
所述函数获取单元,用于从所述第一队列中获取调用函数;
所述函数执行单元,用于执行获取到的调用函数,得到目标网页元素的数据;
第一服务器还包括:数据返回单元,用于将第二服务器得到的所述目标网页元素的数据返回目标浏览器,所述目标浏览器为请求调用所述目标网页元素的接口的浏览器。
7.根据权利要求6所述的系统,其特征在于,所述函数执行单元,包括:
队列加入子单元,用于将从所述第一队列中获取的调用函数存储到所述第二服务器中的第二队列;
函数执行子单元,用于从所述第二队列获取待执行的目标调用函数,并执行所述目标调用函数,得到目标网页元素的数据。
8.根据权利要求7所述的系统,其特征在于,所述函数执行子单元,包括:
第一函数执行子单元,用于通过所述第二队列关联的执行函数从所述第二队列中获取待执行的第一目标调用函数,执行所述第一目标调用函数,得到所述第一目标调用函数对应的目标网页元素的数据;
第二函数执行子单元,用于在通过所述执行函数执行所述第一目标调用函数的过程中,如果通过运行的异步检测线程检测到所述第二队列中仍存在尚未执行的调用函数,通过所述异步检测线程从所述第二队列中获取待执行的第二目标调用函数,执行所述第二目标调用函数,得到所述第二目标调用函数对应的目标网页元素的数据。
9.根据权利要求6所述的系统,其特征在于,
所述第二服务器还包括:数据存储单元,用于将所述函数执行单元得到的目标网页元素的数据存储到所述第二服务器的第三队列中;
所述数据返回单元,具体为,用于从所述第三队列中取出目标网页元素的数据,并返回给目标浏览器。
10.根据权利要求9所述的系统,其特征在于,所述第一服务器,还包括:响应指示单元,用于在所述函数确定单元将所述接口对应的调用函数存储到第一队列中之后,向所述浏览器返回调用响应指示,以便所述浏览器在接收到所述调用响应指示后,向所述第一服务器发送接口数据请求,所述调用响应指示表征所述第一服务器正在响应所述浏览器请求的接口调用;
所述数据返回单元具体为,用于在接收到目标浏览器发送的接口数据请求后,如从所述第三队列中取出所述目标网页元素的数据,则将所述目标网页元素的数据发送给所述目标浏览器。
CN202010207601.5A 2020-03-23 2020-03-23 接口调用处理方法和系统 Active CN111428171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010207601.5A CN111428171B (zh) 2020-03-23 2020-03-23 接口调用处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010207601.5A CN111428171B (zh) 2020-03-23 2020-03-23 接口调用处理方法和系统

Publications (2)

Publication Number Publication Date
CN111428171A true CN111428171A (zh) 2020-07-17
CN111428171B CN111428171B (zh) 2023-06-30

Family

ID=71555384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010207601.5A Active CN111428171B (zh) 2020-03-23 2020-03-23 接口调用处理方法和系统

Country Status (1)

Country Link
CN (1) CN111428171B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328939A (zh) * 2020-11-16 2021-02-05 北京沃东天骏信息技术有限公司 页面处理方法、装置及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012152228A1 (zh) * 2011-05-12 2012-11-15 广州市动景计算机科技有限公司 获取页面资源的方法及装置、浏览器及移动终端
CN102932390A (zh) * 2011-08-11 2013-02-13 阿里巴巴集团控股有限公司 一种网络请求的处理方法和系统、网络服务提供装置
CN104866383A (zh) * 2015-05-29 2015-08-26 北京金山安全软件有限公司 一种接口调用方法、装置及终端
US20160112492A1 (en) * 2013-06-29 2016-04-21 Guangzhou Ucweb Computer Technology Co., Ltd. Method and apparatus for providing network resources at intermediary server
CN106293794A (zh) * 2015-06-05 2017-01-04 阿里巴巴集团控股有限公司 加载页面的方法、装置和系统
CN109213948A (zh) * 2018-10-18 2019-01-15 网宿科技股份有限公司 网页加载方法、中间服务器和网页加载系统
US20190188395A1 (en) * 2012-01-09 2019-06-20 Visa International Service Association Secure dynamic page content and layouts apparatuses, methods and systems
CN110704148A (zh) * 2019-09-20 2020-01-17 广州虎牙科技有限公司 设备页面元素的获取方法、装置、服务器及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012152228A1 (zh) * 2011-05-12 2012-11-15 广州市动景计算机科技有限公司 获取页面资源的方法及装置、浏览器及移动终端
CN102932390A (zh) * 2011-08-11 2013-02-13 阿里巴巴集团控股有限公司 一种网络请求的处理方法和系统、网络服务提供装置
US20190188395A1 (en) * 2012-01-09 2019-06-20 Visa International Service Association Secure dynamic page content and layouts apparatuses, methods and systems
US20160112492A1 (en) * 2013-06-29 2016-04-21 Guangzhou Ucweb Computer Technology Co., Ltd. Method and apparatus for providing network resources at intermediary server
CN104866383A (zh) * 2015-05-29 2015-08-26 北京金山安全软件有限公司 一种接口调用方法、装置及终端
CN106293794A (zh) * 2015-06-05 2017-01-04 阿里巴巴集团控股有限公司 加载页面的方法、装置和系统
CN109213948A (zh) * 2018-10-18 2019-01-15 网宿科技股份有限公司 网页加载方法、中间服务器和网页加载系统
CN110704148A (zh) * 2019-09-20 2020-01-17 广州虎牙科技有限公司 设备页面元素的获取方法、装置、服务器及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
于梅英等: "基于负载均衡技术的网络作业系统访问压力解决方案", 《中国医学教育技术》 *
王成;李少元;郑黎晓;缑锦;曾梅琴;刘慧敏;: "Web前端性能优化方案与实践", 计算机应用与软件 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328939A (zh) * 2020-11-16 2021-02-05 北京沃东天骏信息技术有限公司 页面处理方法、装置及存储介质

Also Published As

Publication number Publication date
CN111428171B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
KR101651524B1 (ko) 브라우저의 새로운 탭 페이지 및 북마크 툴바
US20130024869A1 (en) Picture loading method and terminal
CN107105336B (zh) 数据处理方法及数据处理装置
CN107463563B (zh) 一种浏览器的信息服务处理方法及装置
CN111897638A (zh) 分布式任务调度方法及系统
CN113010224B (zh) 前端微服务化方法、装置、计算机设备和存储介质
CN108038009B (zh) 基于Web应用的前后端交互方法、装置及计算机设备
CN109451076B (zh) 一种网络请求的合并处理方法、装置及电子设备
CN111225010A (zh) 数据处理方法、数据处理系统以及装置
US20110158557A1 (en) Image server and image transmission method thereof
US20090292765A1 (en) Method and apparatus for providing a synchronous interface for an asynchronous service
CN105677678B (zh) 网页的首屏位置确定、网页信息显示方法和系统
CN111428171A (zh) 接口调用处理方法和系统
US20230033164A1 (en) Webpage image monitoring method and apparatus, electronic device, and computer-readable storage medium
CN113778581A (zh) 页面加载方法、电子设备和存储介质
CN112596820A (zh) 一种资源加载方法、装置、设备以及存储介质
US11134116B2 (en) System and method for dynamically loading a webpage
CN113158098A (zh) 页面生成方法、装置、设备和介质
CN113274736B (zh) 云游戏资源调度方法、装置、设备及存储介质
CN112818183B (zh) 一种数据合成方法、装置、计算机设备和存储介质
CN113536168B (zh) 组件处理方法及设备
CN115754413A (zh) 示波器及数据处理方法
CN116627521A (zh) 业务模块预加载方法、跳转方法、装置及存储介质
CN113641515A (zh) 一种消息处理方法、装置、系统、电子设备和存储介质
CN108809763B (zh) 一种网络性能参数采集方法、终端装置及存储介质

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
GR01 Patent grant
GR01 Patent grant