CN111158923B - 接口调用方法、装置、电子设备及存储介质 - Google Patents

接口调用方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111158923B
CN111158923B CN201911424430.5A CN201911424430A CN111158923B CN 111158923 B CN111158923 B CN 111158923B CN 201911424430 A CN201911424430 A CN 201911424430A CN 111158923 B CN111158923 B CN 111158923B
Authority
CN
China
Prior art keywords
asynchronous
request
synchronous
processing system
synchronous request
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.)
Active
Application number
CN201911424430.5A
Other languages
English (en)
Other versions
CN111158923A (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.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies 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 Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201911424430.5A priority Critical patent/CN111158923B/zh
Publication of CN111158923A publication Critical patent/CN111158923A/zh
Application granted granted Critical
Publication of CN111158923B publication Critical patent/CN111158923B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种接口调用方法、装置、电子设备及存储介质,方法包括:接收同步接口转发的由客户端发起的同步请求;将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;通过所述同步接口向所述客户端返回所述处理结果。本申请实施例有利于解决基于服务化的同步接口和异步接口调用矛盾的问题。

Description

接口调用方法、装置、电子设备及存储介质
技术领域
本申请涉及接口调用技术领域,尤其涉及一种接口调用方法、装置、电子设备及存储介质。
背景技术
在产品***中,不同的组成部分对同步接口与异步接口的需求是完全不同的,靠近用户的部分倾向于同步接口,例如:基于超文本传输协议的Restful(一种网络应用程序的设计风格和开发方式)规范的接口,而靠近底层的部分倾向于异步接口,例如:处理器上的寄存器接口。随着服务化的普及,***软件中越来越多的底层功能通过服务化提供,与软件开发工具包的接口提供不同,服务化接口的提供形式是同步的,而底层计算的形式是异步的,这就使得***中两种接口的调用产生了矛盾。
发明内容
针对上述问题,本申请提供了一种接口调用方法、装置、电子设备及存储介质,有利于解决基于服务化的同步接口和异步接口调用矛盾的问题。
为实现上述目的,本申请实施例第一方面提供了一种接口调用方法,该方法包括:
接收同步接口转发的由客户端发起的同步请求;
将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;
获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;
通过所述同步接口向所述客户端返回所述处理结果。
在一种可能的实施方式中,所述向异步处理***下发所述同步请求,包括:
检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;
所述生成异步等待信号,包括:
生成所述同步请求的目标请求标识;
根据所述目标请求标识生成所述同步请求的异步等待信号。
在一种可能的实施方式中,所述获取所述异步处理***上报的对所述同步请求进行处理的处理结果,包括:
在所述异步处理***触发数据完成信号的情况下,接收所述异步处理***上报的目标数据块,解析所述目标数据块以得到所述目标请求标识;所述目标数据块为所述同步请求的部分处理结果;
从异步结果缓存中获取所述目标请求标识对应的目标缓存块;所述异步结果缓存中包括多个缓存块,每个缓存块中均包括请求标识、所述异步处理***对该请求标识对应的同步请求进行处理的完成度标识、数据块以及数据块的索引;
将所述目标数据块存储在所述目标缓存块,解析所述目标数据块以得到所述目标数据块的索引;
根据所述目标数据块的索引统计所述目标缓存块中的完成度标识,若所述完成度标识达到完成度阈值,则得到所述处理结果,并触发所述处理结果的收集完成信号。
在一种可能的实施方式中,在从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步之前,所述方法还包括:
在触发所述处理结果的收集完成信号的情况下,获取所述收集完成信号携带的所述目标请求标识;
根据所述目标请求标识从异步等待信号队列中获取所述异步等待信号。
在一种可能的实施方式中,所述方法还包括:
当预先初始化的定时器的每个预设定时周期结束时,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
在一种可能的实施方式中,所述方法还包括:
在触发所述处理结果的收集完成信号的情况下,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
在一种可能的实施方式中,在生成异步等待信号之后,所述方法还包括:
对所述异步等待信号的信号量进行初始化;
将所述上下文信息保存在所述异步等待信号中。
本申请实施例第二方面提供了一种接口调用装置,该装置包括:
同步请求获取模块,用于接收同步接口转发的由客户端发起的同步请求;
同异步转换调度模块,用于将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;
所述同异步转换调度模块,还用于获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;
异步结果返回模块,用于通过所述同步接口向所述客户端返回所述处理结果。
本申请实施例第三方面提供了一种电子设备,所述电子设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的接口调用方法中的步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的接口调用方法中的步骤。
本申请的上述方案至少包括以下有益效果:可以看出,与现有技术相比,通过接收同步接口转发的由客户端发起的同步请求;将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号;获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取上下文信息,对所述上下文信息进行同步;通过所述同步接口向所述客户端返回所述处理结果。这样在服务端接收同步请求和返回处理结果时均通过同步接口实现,满足了产品***的易用性和通用性要求,同时,在服务端内部通过同异步转换调度将同步请求下发给异步处理***进行处理,以及将异步处理***上报的处理结果进行同步返回,在内部实现了对异步的管理,充分使用到底层资源,从而有利于解决基于服务化的同步接口和异步接口调用矛盾的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的一种应用架构图;
图1B为本申请实施例提供的一种服务端内部调用的示意图;
图2本申请实施例提供的一种接口调用方法的流程示意图;
图3为本申请实施例提供的一种同步请求缓存队列的示意图;
图4为本申请实施例提供的一种异步等待信号队列的示意图;
图5为本申请实施例提供的一种异步结果缓存的示意图;
图6为本申请实施例提供的另一种接口调用方法的流程示意图;
图7为本申请实施例提供的一种接口调用装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。
首先结合相关附图来举例介绍下本申请实施例的方案可能应用到的网络***架构。请参见图1A,图1A为本申请实施例提供的一种应用架构图,该应用架构如图1A所示,主要包括客户端和服务端,客户端和服务端主要通过网络进行交互。具体的,客户端可以为多个,包括但不限于台式电脑、笔记本电脑、智能手机、可穿戴设备、个人数字助理(PersonalDigital Assistant,PDA),客户端主要用于向服务端发起相关处理或计算的同步请求,并同步接收服务端返回的处理结果。如图1B所示,服务端在内部可进行异步管理,实现同异步的转换调度,通过同步域同步处理客户端发起的同步请求实例,并将其转发给同异步转换域,由转换域将同步请求下发给异步域的异步处理***,转换域中主要通过同异步转换调度模块对同步请求进行管理、对异步等待Pending信号队列进行异步信号管理和同步上下文管理、对异步域上报的异步结果进行收集和缓存,并将收集的异步结果返回至同步域,由同步域返回客户端。基于图1A所示的应用架构,以下结合其他附图对本申请实施例提供的接口调用方法进行详细阐述。
请参见图2,图2为本申请实施例提供的一种接口调用方法的流程示意图,如图2所示,包括以下步骤:
S21,接收同步接口转发的由客户端发起的同步请求。
本申请具体实施例中,客户端向服务端发起同步请求,服务端同步域通过同步接口接收到同步请求,由于同步域没有实际的处理能力,因此,需要向后端的转换域转发同步请求。
S22,将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息。
本申请具体实施例中,服务端的转换域在接收到同步请求后,由同步请求触发同步请求管理流程,将同步请求加入同步请求缓存队列进行缓存,使得异步处理***的处理能力或吞吐量与外部进来的同步请求相匹配,起到短时间的缓冲作用,之后将同步请求下发给异步处理***进行异步处理。另外,转换域还生成同步请求的异步等待Pending信号,将同步请求等待该异步等待Pending信号中,那么,该同步请求的上下文信息便自然存在于该异步等待Pending信号中了,上下文信息即同步请求执行的线程状态、执行的指令流以及上下文信息进入异步等待Pending信号时的执行快照数据。
具体的,对同步请求进行管理时,定义这个同步请求为Request(n),把同步请求Request(n)加入同步请求缓存队列中,触发异步处理***的调度操作:首先判断异步处理***是否为准备状态,如果是则从同步请求缓存队列中取出同步请求Request(n),将同步请求Request(n)下发给异步处理***,如果否则退出当前执行;生成同步请求Request(n)的目标请求ID(Identity document,标识),基于该目标请求ID,生成同步请求Request(n)的异步等待Pending信号,该异步等待Pending信号存在于异步等待Pending信号队列中,然后进行信号量的初始化,对异步等待Pending信号中的上下文信息进行保存,暂停同步请求Request(n)的执行,等待异步处理***对同步请求Request(n)处理完成,等待下一条同步请求触发同步请求管理。
如图3所示,同步请求缓存队列对接收到的同步请求进行先入先出缓存,即按同步请求进入的顺序进行输出,同步请求缓存队列中每个同步请求的存储元素均包括请求ID和请求参数(完成请求所需要的输入),请求ID为一个长整型数据,通常情况下为64位,对于高频的同步请求,也可以采用128位,此处不作限定。
如图4所示,异步等待Pending信号队列,可对异步等待Pending信号的产生、存储、发送等进行管理,其中存在多个异步等待Pending信号,每个异步等待Pending信号均有与之唯一对应的同步请求,例如:异步等待Pending信号N可能是请求ID为1的同步请求的异步等待Pending信号,异步等待Pending信号2可能是请求ID为2的同步请求的异步等待Pending信号,每个异步等待Pending信号均为Map存储结构,Map的key为每个同步请求的请求ID,除了请求ID,异步等待Pending信号中还包括信号量和上下文信息,信号量用于管理上下文信息,在对应同步处理请求未完成处理时,上下文信息等待在信号量中,在收到对应同步处理请求的处理结果收集完成信号时,上下文信息在信号量中等待唤醒,并完成上下文信息的切换或同步。
S23,获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步。
S24,通过所述同步接口向所述客户端返回所述处理结果。
本申请具体实施例中,每当完成对同步请求Request(n)的一部分的处理,异步处理***就会对该部分的处理结果以数据块的形式进行上报,转换域仅需等待数据完成信号即可。当异步处理***触发数据完成信号时,转换域接收异步处理***上报的目标数据块,解析目标数据块以得到目标请求ID,其中目标数据块即同步请求Request(n)的部分处理结果,目标请求ID即同步请求Request(n)的请求ID。转换域从异步结果中获取目标请求ID对应的目标缓存块,其中,目标缓存块即同步请求Request(n)的部分或全部处理结果在异步结果缓存中的块,如图5所示,异步结果缓存中缓存有多个同步请求的缓存块,每个缓存块均为Map存储结构,Map的key仍为请求ID,每个缓存块除了请求ID,还有对应同步请求的完成度标识、对应同步请求的多个数据块以及每个数据块的索引Index,完成度标识可用百分比表示,每个数据块的索引Index表示该数据块是对应同步请求整体处理结果的第几部分,当完成度标识为100%时,表示该缓存块对应的同步请求已经处理完毕,缓存块中的所有数据块组成对应的同步请求的处理结果。将接收的目标数据块存储在对应的目标缓存块中,解析目标数据块得到目标数据块的索引Index,根据目标数据块的索引Index统计目标缓存块中的完成度标识,若完成度标识达到完成度阈值100%,则说明同步请求Request(n)处理完毕,由此便收集到同步请求Request(n)的处理结果,并触发该结果收集完成信号,转换域等待下一个数据完成信号,进行下一个同步请求的处理结果的收集。
另外,在触发同步请求Request(n)的处理结果的收集完成信号时,转换域从收集完成信号中取出携带的目标请求ID,根据目标请求ID从图4所示的异步等待Pending信号队列中找到同步请求Request(n)的异步等待Pending信号,得到该异步等待Pending信号中的上下文信息,对该上下文信息进行切换以完成同步,将同步请求Request(n)的处理结果通过同步域的同步接口进行返回,客户端在同步接口上得到处理结果。
可以看出,本申请实施例通过接收同步接口转发的由客户端发起的同步请求;将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号;获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取上下文信息,对所述上下文信息进行同步;通过所述同步接口向所述客户端返回所述处理结果。这样在服务端接收同步请求和返回处理结果时均通过同步接口实现,满足了产品***的易用性和通用性要求,同时,在服务端内部通过同异步转换调度将同步请求下发给异步处理***进行处理,以及将异步处理***上报的处理结果进行同步返回,在内部实现了对异步的管理,充分使用到底层资源,从而有利于解决基于服务化的同步接口和异步接口调用矛盾的问题。
请参加图6,图6为本申请实施例提供的另一种接口调用方法的流程示意图,如图6所示,包括以下步骤:
S61,接收同步接口转发的由客户端发起的同步请求;
S62,将所述同步请求加入同步请求缓存队列;
S63,检测异步处理***是否处于准备状态;
S64,在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,向所述异步处理***下发所述同步请求;
S65,生成所述同步请求的目标请求标识,根据所述目标请求标识生成所述同步请求的异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;
S66,获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;
S67,通过所述同步接口向所述客户端返回所述处理结果。
其中,上述步骤S61-S67在图2所示的实施例中已有相关描述,且能达到相同或相似的有益效果,此处不再赘述。
在一种可能的实施例中,所述方法还包括:
当预先初始化的定时器的每个预设定时周期结束时,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
本申请具体实施例中,在初始化***时,会初始化一个定时器,在转换域中除了新接收一个同步请求会触发同步请求管理流程,定时器也会触发同步请求管理。定时器设定的定时周期为T,每T周期结束时,检测同步请求缓存队列是否为空,若否则检测异步处理***是否处于准备状态,如果已经准备好则从同步请求缓存队列中取出同步请求Request(n)并下发给异步处理***,生成同步请求Request(n)的目标请求ID,生成同步请求Request(n)的异步等待Pending信号,进行信号量的初始化,对异步等待Pending信号中的上下文信息进行保存,暂停同步请求Request(n)的执行,等待异步处理***对同步请求Request(n)处理完成,再次回到检测异步处理***是否处于准备状态的步骤。
在一种可能的实施方式中,所述方法还包括:
在触发所述处理结果的收集完成信号的情况下,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
本申请具体实施例中,触发处理结果的收集完成信号,表示异步处理***很可能重新处于准备状态,转换域也将进入同步请求管理流程,此时,检测同步请求缓存队列是否为空,若否则检测异步处理***是否处于准备状态,如果已经准备好则从同步请求缓存队列中取出同步请求Request(n)并下发给异步处理***,生成同步请求Request(n)的目标请求ID,生成同步请求Request(n)的异步等待Pending信号,进行信号量的初始化,对异步等待Pending信号中的上下文信息进行保存,暂停同步请求Request(n)的执行,等待异步处理***对同步请求Request(n)处理完成,再次回到检测异步处理***是否处于准备状态的步骤。
图6所示的实施例在图2所示的实施例的基础上增加了多个可能的实施方式,除了同步请求可以触发同步请求管理,定时器、处理结果的收集完成信号也会触发同步请求管理,多种方式检测异步处理***的状态,每当异步处理***为准备状态时,执行下发同步请求的操作,有利于充分利用异步处理***的底层处理资源。
请参见图7,图7为本申请实施例提供的一种接口调用装置的结构示意图,如图7所示,该装置包括:
同步请求获取模块71,用于接收同步接口转发的由客户端发起的同步请求;
同异步转换调度模块72,用于将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;
所述同异步转换调度模块72,还用于获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;
异步结果返回模块73,用于通过所述同步接口向所述客户端返回所述处理结果。
可以看出,本申请提供的接口调用装置通过接收同步接口转发的由客户端发起的同步请求;将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号;获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取上下文信息,对所述上下文信息进行同步;通过所述同步接口向所述客户端返回所述处理结果。这样在服务端接收同步请求和返回处理结果时均通过同步接口实现,满足了产品***的易用性和通用性要求,同时,在服务端内部通过同异步转换调度将同步请求下发给异步处理***进行处理,以及将异步处理***上报的处理结果进行同步返回,在内部实现了对异步的管理,充分使用到底层资源,从而有利于解决基于服务化的同步接口和异步接口调用矛盾的问题。
在一种示例中,在向异步处理***下发所述同步请求方面,同异步转换调度模块72具体用于:
检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;
在生成异步等待信号方面,同异步转换调度模块72具体用于:
生成所述同步请求的目标请求标识;
根据所述目标请求标识生成所述同步请求的异步等待信号。
在一种示例中,获取所述异步处理***上报的对所述同步请求进行处理的处理结果方面,同异步转换调度模块72具体用于:
在所述异步处理***触发数据完成信号的情况下,接收所述异步处理***上报的目标数据块,解析所述目标数据块以得到所述目标请求标识;所述目标数据块为所述同步请求的部分处理结果;
从异步结果缓存中获取所述目标请求标识对应的目标缓存块;所述异步结果缓存中包括多个缓存块,每个缓存块中均包括请求标识、所述异步处理***对该请求标识对应的同步请求进行处理的完成度标识、数据块以及数据块的索引;
将所述目标数据块存储在所述目标缓存块,解析所述目标数据块以得到所述目标数据块的索引;
根据所述目标数据块的索引统计所述目标缓存块中的完成度标识,若所述完成度标识达到完成度阈值,则得到所述处理结果,并触发所述处理结果的收集完成信号。
在一种示例中,同异步转换调度模块72具体还用于:
在触发所述处理结果的收集完成信号的情况下,获取所述收集完成信号携带的所述目标请求标识;
根据所述目标请求标识从异步等待信号队列中获取所述异步等待信号。
在一种示例中,同异步转换调度模块72具体还用于:
当预先初始化的定时器的每个预设定时周期结束时,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
在一种示例中,同异步转换调度模块72具体还用于:
在触发所述处理结果的收集完成信号的情况下,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
在一种示例中,同异步转换调度模块72具体还用于:
对所述异步等待信号的信号量进行初始化;
将所述上下文信息保存在所述异步等待信号中。
需要说明的是,图2和图6所示的接口调用方法中的各个步骤均可以是由本申请实施例提供的接口调用装置中的各个单元模块来执行,且能达到相同或相似的有益效果,例如:步骤S21和步骤S61可用接口调用装置中的同步请求获取模块71实现,再例如:步骤S22和步骤S63可用接口调用装置中的同异步转换调度模块72实现等等。需要说明的是,本申请实施例提供的接口调用装置能够应用在产品***接口调用场景中,具体的,上述接口调用装置可应用于服务器、计算机等能够进行接口调用的设备中。
请参见图8,图8为本申请实施例提供的一种电子设备的结构示意图,如图8所示,包括:存储器81,用于存储一个或多个计算机程序;处理器82,用于调用存储器81存储的计算机程序执行上述接口调用方法实施例中的步骤;通信接口83,用于进行输入输出,该通信接口83可以为一个或多个;可以理解的,电子设备中各部分分别通过总线连接通信。其中,处理器82具体用于调用计算机程序执行如下步骤:
接收同步接口转发的由客户端发起的同步请求;
将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;
获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;
通过所述同步接口向所述客户端返回所述处理结果。
在一种可能的实施方式中,处理器82执行所述向异步处理***下发所述同步请求,包括:
检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;
处理器82执行所述生成异步等待信号,包括:
生成所述同步请求的目标请求标识;
根据所述目标请求标识生成所述同步请求的异步等待信号。
在一种可能的实施方式中,处理器82执行所述获取所述异步处理***上报的对所述同步请求进行处理的处理结果,包括:
在所述异步处理***触发数据完成信号的情况下,接收所述异步处理***上报的目标数据块,解析所述目标数据块以得到所述目标请求标识;所述目标数据块为所述同步请求的部分处理结果;
从异步结果缓存中获取所述目标请求标识对应的目标缓存块;所述异步结果缓存中包括多个缓存块,每个缓存块中均包括请求标识、所述异步处理***对该请求标识对应的同步请求进行处理的完成度标识、数据块以及数据块的索引;
将所述目标数据块存储在所述目标缓存块,解析所述目标数据块以得到所述目标数据块的索引;
根据所述目标数据块的索引统计所述目标缓存块中的完成度标识,若所述完成度标识达到完成度阈值,则得到所述处理结果,并触发所述处理结果的收集完成信号。
在一种可能的实施方式中,在从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步之前,处理器82还用于:
在触发所述处理结果的收集完成信号的情况下,获取所述收集完成信号携带的所述目标请求标识;
根据所述目标请求标识从异步等待信号队列中获取所述异步等待信号。
在一种可能的实施方式中,处理器82还用于:
当预先初始化的定时器的每个预设定时周期结束时,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
在一种可能的实施方式中,处理器82还用于:
在触发所述处理结果的收集完成信号的情况下,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
在一种可能的实施方式中,在生成异步等待信号之后,处理器82还用于:
对所述异步等待信号的信号量进行初始化;
将所述上下文信息保存在所述异步等待信号中。
示例性的,上述电子设备可以是计算机、笔记本电脑、平板电脑、掌上电脑、服务器、云端服务器等设备。电子设备可包括但不仅限于存储器81、处理器82、通信接口83。本领域技术人员可以理解,所述示意图仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
需要说明的是,由于电子设备的处理器82执行计算机程序时实现上述的接口调用方法中的步骤,因此上述接口调用方法的实施例均适用于该电子设备,且均能达到相同或相似的有益效果。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述的接口调用方法中的步骤。
具体的,计算机程序被处理器执行时实现如下步骤:
接收同步接口转发的由客户端发起的同步请求;
将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;
获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;
通过所述同步接口向所述客户端返回所述处理结果。
在一种示例中,计算机程序被处理器执行时还实现如下步骤:检测所述异步处理***是否处于准备状态;在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;
计算机程序被处理器执行时还实现如下步骤:生成所述同步请求的目标请求标识;根据所述目标请求标识生成所述同步请求的异步等待信号。
在一种示例中,计算机程序被处理器执行时还实现如下步骤:在所述异步处理***触发数据完成信号的情况下,接收所述异步处理***上报的目标数据块,解析所述目标数据块以得到所述目标请求标识;所述目标数据块为所述同步请求的部分处理结果;从异步结果缓存中获取所述目标请求标识对应的目标缓存块;所述异步结果缓存中包括多个缓存块,每个缓存块中均包括请求标识、所述异步处理***对该请求标识对应的同步请求进行处理的完成度标识、数据块以及数据块的索引;将所述目标数据块存储在所述目标缓存块,解析所述目标数据块以得到所述目标数据块的索引;根据所述目标数据块的索引统计所述目标缓存块中的完成度标识,若所述完成度标识达到完成度阈值,则得到所述处理结果,并触发所述处理结果的收集完成信号。
在一种示例中,计算机程序被处理器执行时还实现如下步骤:
在触发所述处理结果的收集完成信号的情况下,获取所述收集完成信号携带的所述目标请求标识;根据所述目标请求标识从异步等待信号队列中获取所述异步等待信号。
在一种示例中,计算机程序被处理器执行时还实现如下步骤:当预先初始化的定时器的每个预设定时周期结束时,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
在一种示例中,计算机程序被处理器执行时还实现如下步骤:
在触发所述处理结果的收集完成信号的情况下,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
在一种示例中,计算机程序被处理器执行时还实现如下步骤:对所述异步等待信号的信号量进行初始化;将所述上下文信息保存在所述异步等待信号中。
示例性的,计算机可读存储介质的计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,由于计算机可读存储介质的计算机程序被处理器执行时实现上述的接口调用方法中的步骤,因此上述接口调用方法的所有实施例均适用于该计算机可读存储介质,且均能达到相同或相似的有益效果。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种接口调用方法,其特征在于,所述方法包括:
接收同步接口转发的由客户端发起的同步请求;
将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;
获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;
通过所述同步接口向所述客户端返回所述处理结果。
2.根据权利要求1所述的方法,其特征在于,所述向异步处理***下发所述同步请求,包括:
检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;
所述生成异步等待信号,包括:
生成所述同步请求的目标请求标识;
根据所述目标请求标识生成所述同步请求的异步等待信号。
3.根据权利要求2所述的方法,其特征在于,所述获取所述异步处理***上报的对所述同步请求进行处理的处理结果,包括:
在所述异步处理***触发数据完成信号的情况下,接收所述异步处理***上报的目标数据块,解析所述目标数据块以得到所述目标请求标识;所述目标数据块为所述同步请求的部分处理结果;
从异步结果缓存中获取所述目标请求标识对应的目标缓存块;所述异步结果缓存中包括多个缓存块,每个缓存块中均包括请求标识、所述异步处理***对该请求标识对应的同步请求进行处理的完成度标识、数据块以及数据块的索引;
将所述目标数据块存储在所述目标缓存块,解析所述目标数据块以得到所述目标数据块的索引;
根据所述目标数据块的索引统计所述目标缓存块中的完成度标识,若所述完成度标识达到完成度阈值,则得到所述处理结果,并触发所述处理结果的收集完成信号。
4.根据权利要求3所述的方法,其特征在于,在从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步之前,所述方法还包括:
在触发所述处理结果的收集完成信号的情况下,获取所述收集完成信号携带的所述目标请求标识;
根据所述目标请求标识从异步等待信号队列中获取所述异步等待信号。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当预先初始化的定时器的每个预设定时周期结束时,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在触发所述处理结果的收集完成信号的情况下,检测所述缓存队列是否为空,若不为空,则检测所述异步处理***是否处于准备状态;
在所述异步处理***处于准备状态的情况下,从所述缓存队列中取出所述同步请求,执行所述向异步处理***下发所述同步请求的操作;在所述异步处理***未处于准备状态的情况下,退出当前执行。
7.根据权利要求1所述的方法,其特征在于,在生成异步等待信号之后,所述方法还包括:
对所述异步等待信号的信号量进行初始化;
将所述上下文信息保存在所述异步等待信号中。
8.一种接口调用装置,其特征在于,所述装置包括:
同步请求获取模块,用于接收同步接口转发的由客户端发起的同步请求;
同异步转换调度模块,用于将所述同步请求加入同步请求缓存队列,向异步处理***下发所述同步请求,并生成异步等待信号,所述异步等待信号中包括所述同步请求的上下文信息;
所述同异步转换调度模块,还用于获取所述异步处理***上报的对所述同步请求进行处理的处理结果,并从所述异步等待信号中获取所述上下文信息,对所述上下文信息进行同步;
异步结果返回模块,用于通过所述同步接口向所述客户端返回所述处理结果。
9.一种电子设备,其特征在于,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的接口调用方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的接口调用方法中的步骤。
CN201911424430.5A 2019-12-30 2019-12-30 接口调用方法、装置、电子设备及存储介质 Active CN111158923B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911424430.5A CN111158923B (zh) 2019-12-30 2019-12-30 接口调用方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911424430.5A CN111158923B (zh) 2019-12-30 2019-12-30 接口调用方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111158923A CN111158923A (zh) 2020-05-15
CN111158923B true CN111158923B (zh) 2023-05-12

Family

ID=70560665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911424430.5A Active CN111158923B (zh) 2019-12-30 2019-12-30 接口调用方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111158923B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1790260A (zh) * 2004-12-15 2006-06-21 国际商业机器公司 用于从同步接口和方法生成异步接口和方法的***及方法
CN1933454A (zh) * 2005-09-13 2007-03-21 中兴通讯股份有限公司 一种基于java消息服务的同步消息接口实现方法
CN107301444A (zh) * 2017-05-25 2017-10-27 北京大学 一种超高频rfid编码电路
CN108694146A (zh) * 2017-04-11 2018-10-23 华大半导体有限公司 一种异步/同步接口电路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1790260A (zh) * 2004-12-15 2006-06-21 国际商业机器公司 用于从同步接口和方法生成异步接口和方法的***及方法
CN1933454A (zh) * 2005-09-13 2007-03-21 中兴通讯股份有限公司 一种基于java消息服务的同步消息接口实现方法
CN108694146A (zh) * 2017-04-11 2018-10-23 华大半导体有限公司 一种异步/同步接口电路
CN107301444A (zh) * 2017-05-25 2017-10-27 北京大学 一种超高频rfid编码电路

Also Published As

Publication number Publication date
CN111158923A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN111767143B (zh) 交易数据处理方法、装置、设备及***
CN107798108B (zh) 一种异步任务查询方法及设备
CN106407201B (zh) 一种数据处理方法、装置及计算机可读存储介质
CN110569252B (zh) 一种数据处理***及方法
CN102801737B (zh) 一种异步网络通信方法及装置
WO2014206289A1 (en) Method and apparatus for outputting log information
CN113687964B (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
CN109885535A (zh) 一种文件存储的方法及相关装置
CN110928732A (zh) 服务器集群性能采样分析方法、装置及电子设备
CN114564435A (zh) 异构多核芯片的核间通信方法、装置及介质
Mealha et al. Data replication on the cloud/edge
CN111158923B (zh) 接口调用方法、装置、电子设备及存储介质
CN111611479B (zh) 用于网络资源推荐的数据处理方法及相关装置
CN110955461B (zh) 计算任务的处理方法、装置、***、服务器和存储介质
CN111209263A (zh) 数据存储方法、装置、设备及存储介质
Kazanavičius et al. Evaluation of microservice communication while decomposing monoliths
CN110489219A (zh) 一种调度功能对象的方法、装置、介质和电子设备
CN112311619A (zh) 网络报文延迟检测方法、装置和电子设备
CN112910855B (zh) 一种样例报文处理方法及装置
Ghanbarian et al. On the Performance of Large Loss Systems with Adaptive Multiserver Jobs
CN114595080A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN113722113A (zh) 一种流量统计的方法和装置
CN114281504A (zh) 一种任务调度方法、装置、电子设备及计算机可读介质
Jiang et al. Fast distributed simulation of sensor networks using optimistic synchronization
CN112559469A (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