可左右滑动选省市

接口执行方法、装置、设备和可读存储介质实用新型专利

更新时间:2024-07-01
接口执行方法、装置、设备和可读存储介质实用新型专利 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:接口执行方法、装置、设备和可读存储介质

专利类型:实用新型专利

专利申请号:CN202110053194.1

专利申请(专利权)人:北京沃东天骏信息技术有限公司,北京京东世纪贸易有限公司
权利人地址:北京市经济技术开发区科创十一街18号院2号楼4层A402室

专利发明(设计)人:姜振飞

专利摘要:本申请提供一种接口执行方法、装置、设备和可读存储介质,其中,该方法包括:获取接口请求中的接口标识,根据接口标识,确定请求接口;获取每一个请求接口的执行时长;根据每一个请求接口的执行时长,构建执行链路;根据执行链路,执行每一个请求接口。该技术方案中,通过在执行多个请求接口时,获取每一个请求接口的执行时长,根据执行时长对每一个请求接口进行排序,构建执行链路,以确定每一个请求接口的执行顺序,以及采用并行或串行的执行方式,如此可以能够优化执行链路,即使是在资源受限的情况下,也能够充分的缩短整个执行链路的执行时间,提高服务接口的执行效率。

主权利要求:
1.一种接口执行方法,其特征在于,包括:
获取接口请求中的接口标识,根据所述接口标识,确定请求接口;
获取每一个请求接口的执行时长;
将每一个请求接口的执行时长进行对比,确定每一个请求接口的执行时长的大小关系;
根据每一个请求接口、每一个请求接口的执行时长和所述大小关系,构建二叉树;
对所述二叉树进行遍历,得到排列顺序;
获取排列顺序最前的请求接口的执行时长,作为执行链路的链路时长;
根据所述链路时长,确定每一个请求接口的执行顺序和执行方式,所述执行方式包括串行执行和并行执行,其中,执行时长最长的请求接口与其他的请求接口并行执行,其他的请求接口之间串行执行,串行执行之后的总时长不超过链路时长;
根据每一个请求接口的执行顺序和执行方式,构建执行链路,所述执行链路用于指示每一个请求接口的执行顺序和执行方式;
根据所述执行链路,执行每一个请求接口。
2.根据权利要求1所述的方法,其特征在于,所述获取接口请求中的接口标识,根据所述接口标识,确定请求接口,包括:获取服务接口的接口信息,根据所述接口信息,在预设接口中心注册所述服务接口,所述接口信息包括接口的服务地址和端口号;
获取接口请求中的接口标识,根据所述接口标识,对在预设接口中心注册的服务接口进行查询,得到所述请求接口。
3.根据权利要求1所述的方法,其特征在于,所述获取每一个请求接口的执行时长,包括:获取每一个请求接口的初始执行顺序;
根据所述初始执行顺序,执行每一个请求接口,获取每一个请求接口的执行时长。
4.根据权利要求3所述的方法,其特征在于,所述根据所述初始执行顺序,执行每一个请求接口,获取每一个请求接口的执行时长,包括:根据所述初始执行顺序,分别执行每一个请求接口预设次数,获取每一个请求接口在每一次执行时的执行时间;
根据所述预设次数和执行时间,获取每一个请求接口的平均执行时间,作为每一个请求接口的执行时长。
5.根据权利要求4所述的方法,其特征在于,所述根据所述预设次数和执行时间,获取每一个请求接口的平均执行时间,包括:根据预设的各个连续的时间区段,获取每一个请求接口在每一次执行时,位于每一个时间区段的执行时间的数量;
根据所述预设次数和数量,得到每一个时间区段的概率;
将每一个时间区段的概率与每一个时间区段的端点时间值相乘,得到每一个时间区段的执行时间;
对每一个时间区段的执行时间求和,得到每一个请求接口的平均执行时间。
6.一种接口执行装置,其特征在于,包括:
接口确定模块,用于获取接口请求中的接口标识,根据所述接口标识,确定请求接口;
时长获取模块,用于获取每一个请求接口的执行时长;
链路构建模块,用于根据每一个请求接口的执行时长,构建执行链路,所述执行链路用于指示每一个请求接口的执行顺序和执行方式;
接口执行模块,用于根据所述执行链路,执行每一个请求接口;
所述链路构建模块,具体用于将每一个请求接口的执行时长进行对比,确定每一个请求接口的执行时长的大小关系;
根据每一个请求接口、每一个请求接口的执行时长和所述大小关系,构建二叉树;
对所述二叉树进行遍历,得到排列顺序;
获取排列顺序最前的请求接口的执行时长,作为执行链路的链路时长;
根据所述链路时长,确定每一个请求接口的执行顺序和执行方式,所述执行方式包括串行执行和并行执行,其中,执行时长最长的请求接口与其他的请求接口并行执行,其他的请求接口之间串行执行,串行执行之后的总时长不超过链路时长;
根据每一个请求接口的执行顺序和执行方式,构建执行链路。
7.一种计算机设备,其特征在于,包括存储器和至少一个处理器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1‑5任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如权利要求1‑5任一项所述的方法。
9.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1‑5任一项所述的方法。 说明书 : 接口执行方法、装置、设备和可读存储介质技术领域[0001] 本申请涉及计算机技术领域,尤其涉及一种接口执行方法、装置、设备和可读存储介质。背景技术[0002] 随着互联网技术的发展,互联网的用户群体越来越大,用户的业务请求也越来越多,在服务器执行用户的业务请求的过程中,一般会调用多个服务接口形成一条链路,链路中各个服务接口之间存在相关性和依赖性,不同的服务接口如果执行顺序不相同,将会影响整个链路的执行时间。[0003] 现有技术中,为了提高链路的执行效率,缩短执行时间,会采用并行的方式来执行链路中的服务接口,即将多个服务接口并行执行,如此能够大幅度的缩短整个链路的执行时间。[0004] 但是采用并行执行的方式,其实际上是将所有的服务接口同时并行执行,并行执行的方式容易在执行过程中占用大量的计算资源,一旦计算资源受限,整个链路的执行时间将会大幅提升,导致服务接口的执行效率低。发明内容[0005] 本申请提供一种接口执行方法、装置、设备和可读存储介质,用于解决现有的服务接口并行执行的方式执行效率低的问题。[0006] 第一方面,本申请实施例提供一种接口执行方法,包括:[0007] 获取接口请求中的接口标识,根据所述接口标识,确定请求接口;[0008] 获取每一个请求接口的执行时长;[0009] 根据每一个请求接口的执行时长,构建执行链路,所述执行链路用于指示每一个请求接口的执行顺序和执行方式;[0010] 根据所述执行链路,执行每一个请求接口。[0011] 在第一方面的一种可能设计中,所述获取接口请求中的接口标识,根据所述接口标识,确定请求接口,包括:[0012] 获取服务接口的接口信息,根据所述接口信息,在预设接口中心注册所述服务接口,所述接口信息包括接口的服务地址和端口号;[0013] 获取接口请求中的接口标识,根据所述接口标识,对在预设接口中心注册的服务接口进行查询,得到所述请求接口。[0014] 在第一方面的另一种可能设计中,所述获取每一个请求接口的执行时长,包括:[0015] 获取每一个请求接口的初始执行顺序;[0016] 根据所述初始执行顺序,执行每一个请求接口,获取每一个请求接口的执行时长。[0017] 在第一方面的再一种可能设计中,所述根据所述初始执行顺序,执行每一个请求接口,获取每一个请求接口的执行时长,包括:[0018] 根据所述初始执行顺序,分别执行每一个请求接口预设次数,获取每一个请求接口在每一次执行时的执行时间;[0019] 根据所述预设次数和执行时间,获取每一个请求接口的平均执行时间,作为每一个请求接口的执行时长。[0020] 在第一方面的又一种可能设计中,所述根据所述预设次数和执行时间,获取每一个请求接口的平均执行时间,包括:[0021] 根据预设的各个连续的时间区段,获取每一个请求接口在每一次执行时,位于每一个时间区段的执行时间的数量;[0022] 根据所述预设次数和数量,得到每一个时间区段的概率;[0023] 将每一个时间区段的概率与每一个时间区段的端点时间值相乘,得到每一个时间区段的执行时间;[0024] 对每一个时间区段的执行时间求和,得到每一个请求接口的平均执行时间。[0025] 在第一方面的又一种可能设计中,所述根据每一个请求接口的执行时长,构建执行链路,包括:[0026] 根据每一个请求接口的执行时长,对每一个请求接口进行排序,得到排列顺序;[0027] 获取排列顺序最前的请求接口的执行时长,作为执行链路的链路时长;[0028] 根据所述链路时长,确定每一个请求接口的执行顺序和执行方式,所述执行方式包括串行执行和并行执行;[0029] 根据每一个请求接口的执行顺序和执行方式,构建执行链路。[0030] 在第一方面的又一种可能设计中,所述根据每一个请求接口的执行时长,对每一个请求接口进行排序,得到排列顺序,包括:[0031] 将每一个请求接口的执行时长进行对比,确定每一个请求接口的执行时长的大小关系;[0032] 根据每一个请求接口、每一个请求接口的执行时长和所述大小关系,构建二叉树;[0033] 对所述二叉树进行遍历,得到所述排列顺序。[0034] 第二方面,本申请实施例提供一种接口执行装置,包括:[0035] 接口确定模块,用于获取接口请求中的接口标识,根据所述接口标识,确定请求接口;[0036] 时长获取模块,用于获取每一个请求接口的执行时长;[0037] 链路构建模块,用于根据每一个请求接口的执行时长,构建执行链路,所述执行链路用于指示每一个请求接口的执行顺序和执行方式;[0038] 接口执行模块,用于根据所述执行链路,执行每一个请求接口。[0039] 第三方面,本申请实施例提供一种计算机设备,包括存储器和至少一个处理器;[0040] 所述存储器存储计算机执行指令;[0041] 所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的方法。[0042] 第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如上述的方法。[0043] 第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。[0044] 本申请实施例提供的接口执行方法、装置、设备和可读存储介质,通过在执行多个请求接口时,获取每一个请求接口的执行时长,根据执行时长对每一个请求接口进行排序,构建执行链路,以确定每一个请求接口的执行顺序,以及采用并行或串行的执行方式,如此可以能够优化执行链路,即使是在资源受限的情况下,也能够充分的缩短整个执行链路的执行时间,提高服务接口的执行效率。附图说明[0045] 图1为本申请实施例提供的接口执行方法的第一场景示意图;[0046] 图2为本申请实施例提供的请求接口的执行链路结构示意图;[0047] 图3为本申请实施例提供的接口执行方法实施例一的流程示意图;[0048] 图4为本申请实施例提供的接口注册与调用的流程示意图;[0049] 图5为本申请实施例提供的二叉树结构实施例一的结构示意图;[0050] 图6为本申请实施例提供的接口执行方法实施例二的流程示意图;[0051] 图7为本申请实施例提供的二叉树结构实施例二的结构示意图;[0052] 图8为本申请实施例提供的接口执行装置的结构示意图;[0053] 图9为本申请实施例提供的计算机设备的结构示意图。具体实施方式[0054] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。[0055] 图1为本申请实施例提供的接口执行方法的第一场景示意图,该接口执行方法可以应用于服务器11中,如图1所示,用户可以通过移动终端12发起账号注册请求给服务器11,服务器11在接收到该账号注册请求之后,就需要调用相应的服务接口,例如用户信息验证、注册短信验证和发送邮件等等服务接口,如果注册过程存在有信息填写有误等情况,服务器会调用失败提示等等服务接口。[0056] 示例性的,图2为本申请实施例提供的接口的执行链路结构示意图,其中,接口执行方法的执行主体可以为服务器,当服务器接收到用户的注册请求之后,示例性的,已该注册请求需要调用五个服务接口为例,五个服务接口在执行过程中会形成执行链路,例如五个服务接口可以同时并行执行,如图2所示,也可以是其中的三个服务接口采用并行的执行方式(即服务接口1、服务接口3和服务接口4),另外的两个服务接口(即服务接口2和服务接口5)再穿插到这三个服务接口当中,以串行的执行方式来执行。[0057] 其中,服务接口3的执行时间最长,服务接口1、服务接口4、服务接口2和服务接口5的执行时间依次下降。示例性的,服务接口3的执行时间可以是800毫秒,服务接口1的执行时间可以是500毫秒,服务接口4的执行时间可以是400毫秒,服务接口2的执行时间可以是300毫秒,服务接口5的执行时间可以是200毫秒。[0058] 现有技术所采用的并行执行方式为了缩短整个链路的执行时间,会将各个服务接口同时并行执行,相当于在执行服务接口1的同时也并行执行服务接口2‑5,如此虽然达到了缩短时间的目的,但是五个服务接口同时执行,容易占用较多的计算资源,一旦计算资源受限制或者需要执行的服务接口的数量非常多,无法满足各个服务接口并行执行的需求时,就会使得整个链路的执行时间延长,降低服务接口的执行效率。[0059] 针对上述问题,本申请实施例提供了一种接口执行方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,其发明构思如下:通过对每一个服务接口的执行时间进行评估,确定每一个服务接口的执行时长,由此来构建执行链路,将执行时长较短的服务接口串行执行,执行时长较长的服务接口则单独与其他服务接口并行执行,如此既能够减少同时并行执行的服务接口的数量,又能够充分的缩短整个执行链路的执行时间,提高服务接口的执行效率。[0060] 图3为本申请实施例提供的接口执行方法实施例一的流程示意图,如图3所示,该方法可以应用于服务器或者计算机等处理设备,以该方法的执行主体为服务器为例,该方法可以包括如下步骤:[0061] S301、获取接口请求中的接口标识,根据接口标识,确定请求接口。[0062] 具体的,当用户存在有业务请求时,服务器为了完成该业务请求,需要调用若干个请求接口,通过执行完成若干个请求接口,才能够完成该业务请求,在调用请求接口时,每一个请求接口都对应有唯一的标识,通过该标识来确定需要调用的请求接口有哪些。[0063] 示例性的,标识可以是服务地址和端口号等等,服务地址为每一个服务接口的注册地址,端口号为网络分配给服务接口的请求端口,通过服务地址和端口号,可以从多个服务接口中确定出唯一的请求接口。[0064] 可选的,标识可以是每一个服务接口的ID号等等。[0065] S302、获取每一个请求接口的执行时长。[0066] 具体的,每一个请求接口在执行过程中都需要花费一定的时间,这个时间即为执行时长。[0067] 示例性的,每一个请求接口的执行时长可以不相同,同一个请求接口在不同的执行环境下的执行时长也可以不相同,可以通过确定请求接口的执行时长的时长范围,然后取时长范围的中值作为该请求接口的执行时长。[0068] 可选的,也可以多次执行该请求接口,通过离散数据的平均值算法,来确定该请求接口的执行时长。[0069] S303、根据每一个请求接口的执行时长,构建执行链路。[0070] 其中,执行链路用于指示每一个请求接口的执行顺序和执行方式。[0071] 具体的,执行方式包括有串行执行和并行执行,执行顺序包括先后顺序。每一个请求接口的执行顺序可以相同,每一个请求接口的执行方式也可以相同,示例性的,服务接口1、服务接口3和服务接口4是同时执行的,即服务接口1、服务接口3和服务接口4的执行顺序相同,且执行顺序先于服务接口2和服务接口5,服务接口1、服务接口3和服务接口4采用的是并行的执行方式,而服务接口2和服务接口5采用的则为串行的执行方式,通过确定执行顺序和执行方式,最终构建得到上图2所示的执行链路,该执行链路包括串行的请求接口1和请求接口2,与请求接口1和请求接口4并行的请求接口3,以及与请求接口4串行的请求接口5。[0072] 示例性的,不同的执行顺序和执行方式是根据每一个请求接口的执行时长来确定的,可以将执行时长较短的请求接口合并在一起串行执行,并且同时并行执行一些执行时长较长的请求接口。[0073] S304、根据执行链路,执行每一个请求接口。[0074] 执行链路中包括有每一个请求接口的执行顺序和执行方式,根据执行顺序和执行方式,可以执行完成每一个请求接口,以完成用户的业务请求。[0075] 示例性的,参照图2,按照图2中的执行顺序和执行方式,服务器将同时并行执行请求接口1、请求接口3和请求接口4,由于请求接口1和请求接口4相对于请求接口3的执行时长较短,所以在执行完请求接口1之后,可以串行执行请求接口2,在执行完请求接口4之后,可以串行执行请求接口5,以尽可能的缩短整个执行链路的执行时间。[0076] 本申请实施例通过获取每一个请求接口的执行时长,以确定每一个请求接口的执行顺序,以及采用并行执行或串行执行的方式,能够避免所有的请求接口同时执行,并且充分的缩短整个执行链路的执行时间,提高了执行效率。[0077] 示例性的,在上述实施例的基础上,在一些实施例中,上述步骤S301具体可以通过如下步骤实现:[0078] 获取服务接口的接口信息,根据接口信息,在预设接口中心注册服务接口,获取接口请求中的接口标识,根据接口标识,对在预设接口中心注册的服务接口进行查询,得到请求接口。[0079] 其中,接口信息包括接口的服务地址和端口号。[0080] 在本实施例中,服务接口可以由服务提供方提供的,例如包括有注册服务接口和邮件发送服务接口等等,服务提供方所提供的接口需要在预设接口中心进行注册,完成注册之后,当用户有业务请求,服务器可以根据业务请求中需要调用的接口标识,来从预设接口中心获取到请求接口。[0081] 需要说明的是,接口标识中至少包括有上述的接口信息。[0082] 示例性的,图4为本申请实施例提供的接口注册与调用的流程示意图,如图4所示,服务端41即服务提供者可以在预设接口中心42注册其所提供的服务接口,当服务器的调用端43需要调用时,直接根据接口标识查询预设接口中心中对应的服务接口,得到请求接口。[0083] 示例性的,预设接口中心可以设置于服务器中。[0084] 本申请实施例通过将服务接口注册到预设接口中心,后续可以直接通过接口标识查找预设接口中心中注册的服务接口,得到与接口标识匹配的请求接口,如此能够方便请求接口的调用,提高接口执行效率。[0085] 可选的,在一些实施例中,上述步骤S302具体可以通过如下步骤实现:获取每一个请求接口的初始执行顺序,并根据初始执行顺序,执行每一个请求接口,获取每一个请求接口的执行时长。[0086] 具体的,每一个请求接口在执行完成后,可以统计得到每一个请求接口的执行时长。[0087] 示例性的,初始执行顺序可以是查询预设接口中心对应的服务接口,得到请求接口的先后顺序,示例性的,先查询到的请求接口的初始执行顺序靠前,而后查询到的请求接口的初始执行顺序靠后。[0088] 示例性的,每一个请求接口都可以多次执行,获取每一次执行时的执行时长,并根据每一次执行时的执行时长,确定平均的执行时长。[0089] 示例性的,图5为本申请实施例提供的二叉树结构实施例一的结构示意图,如图5所示,可以按照每一个请求接口的初始执行顺序,将每一个请求接口划入至二叉树的根节点或左子树节点或右子树节点,然后读取二叉树,依次执行二叉树各个节点中的请求接口即可获得每一个请求接口的执行时长。[0090] 本申请实施例通过执行每一个请求接口来获取每一个请求接口的执行时长,能够在后续构建执行链路时更加准确,充分的缩短整个执行链路的执行时间,提高执行效率。[0091] 示例性的,在上述实施例的基础上,在一些实施例中,可以根据初始执行顺序,分别执行每一个请求接口预设次数,获取每一个请求接口在每一次执行时的执行时间,并根据预设次数和执行时间,获取每一个请求接口的平均执行时间,作为每一个请求接口的执行时长。[0092] 具体的,可以将请求接口的每一次执行时间求和,并与预设次数相除,即可以得到平均执行时间,作为该请求接口的执行时长。[0093] 示例性的,预设次数可以根据实际情况设置,例如每一个请求接口可以执行100次,获取每一次执行时的执行时间。[0094] 本申请实施例通过执行若干次请求接口,并根据每一次的执行时间,计算得到平均执行时间,作为请求接口的执行时间,能够提高精度,准确的获取每一个请求接口的执行时长,减少出现的误差。[0095] 进一步的,在一些实施例中,上述“根据预设次数和执行时间,获取每一个请求接口的平均执行时间”具体可以通过如下步骤实现:[0096] 根据预设的各个连续的时间区段,获取每一个请求接口在每一次执行时,位于每一个时间区段的执行时间的数量;[0097] 根据预设次数和数量,得到每一个时间区段的概率;[0098] 将每一个时间区段的概率与每一个时间区段的端点时间值相乘,得到每一个时间区段的执行时间;[0099] 对每一个时间区段的执行时间求和,得到每一个请求接口的平均执行时间。[0100] 示例性的,预设的连续的时间区段可以是按照每一百毫秒划分为一个时间区段,以0毫秒至500毫秒为例,可以划分为6个连续的时间区段,每一个时间区段都有相应的次数,即请求接口在执行时的执行时间处于某一个区段的数量,具体如下表所示:[0101]0‑100ms 100‑200ms 200‑300ms 300‑400ms 400‑500ms 500ms以上60次 20次 10次 3次 4次 3次[0102] 以某一个请求接口执行100次(即预设次数)为例,其执行时间在时间区段0‑100毫秒的次数为60次,在时间区段100‑200毫秒的次数为20次…,在时间区段500毫秒以上的次数为3次,可以计算得到每一个时间区段的概率如下:[0103] 时间区段0‑100毫秒的概率为60/100=0.6;[0104] 时间区段100‑200毫秒的概率为20/100=0.2;[0105] 时间区段200‑300毫秒的概率为10/100=0.1;[0106] 时间区段300‑400毫秒的概率为3/100=0.03;[0107] 时间区段400‑500毫秒的概率为4/100=0.04;[0108] 时间区段500毫秒以上的概率为3/100=0.03;[0109] 示例性的,将每一个时间区段的概率与该时间区段的端点最大时间值相乘,得到每一个时间区段的执行时间,再求和即得到每一个请求接口的平均执行时间。[0110] 平均执行时间=0.6*100+0.2*200+0.1*300+0.03*400+0.04*500+0.03*500。[0111] 本申请实施例划分若干个时间区段,并对请求接口执行预设次数,得到若干次执行时间,根据若干次执行时间来获取该请求接口的平均执行时间,能够提高平均执行时间的准确度,方便后续准确的构建执行链路。[0112] 图6为本申请实施例提供的接口执行方法实施例二的流程示意图,如图6所示,上述步骤S303具体可以通过如下步骤实现:[0113] S601、根据每一个请求接口的执行时长,对每一个请求接口进行排序,得到排列顺序;[0114] S602、获取排列顺序最前的请求接口的执行时长,作为执行链路的链路时长;[0115] S603、根据链路时长,确定每一个请求接口的执行顺序和执行方式;[0116] S604、根据每一个请求接口的执行顺序和执行方式,构建执行链路。[0117] 其中,执行方式包括串行执行和并行执行。[0118] 具体的,执行时长最长的请求接口需要与其他的请求接口并行执行,其他的请求接口之间可以互相串行,但是串行之后的总时长不能够超过链路时长。[0119] 示例性的,以请求接口1至请求接口5为例,请求接口3为执行时长最长的请求接口(执行时长为800毫秒),请求接口1的执行时长为500毫秒,请求接口2的执行时长为300毫秒,请求接口4的执行时长为400毫秒,请求接口5的执行时长为200毫秒,则请求接口1可以与请求接口2之间串行,请求接口4和请求接口5之间可以串行,串行之后的总时长不超过800毫秒,请求接口1和请求接口2合并之后,以及请求接口4和请求接口5合并之后,再一起与请求接口3并行执行。[0120] 本申请实施例通过确定链路时长,可以确定出各个请求接口最优的执行顺序和执行方式,能够充分的提高各个请求接口的执行效率,缩短整个执行链路的执行时间。[0121] 进一步的,在一些实施例中,上述步骤S601具体可以通过如下步骤实现:[0122] 将每一个请求接口的执行时长进行对比,确定每一个请求接口的执行时长的大小关系;[0123] 根据每一个请求接口、每一个请求接口的执行时长和大小关系,构建二叉树;[0124] 对二叉树进行遍历,得到排列顺序。[0125] 具体的,二叉树的根节点中可以存入执行时长最长的请求接口,二叉树的左子树节点可以存入执行时长相对根节点较短的请求接口,二叉树的右子树节点可以存入执行时长相对左子树节点较短的请求接口,如此来构建二叉树,最后只需要遍历整个二叉树,即可得到排列顺序。[0126] 示例性的,图7为本申请实施例提供的二叉树结构实施例二的结构示意图,如图7所示,请求接口3的执行时长为800毫秒,存入至根节点中,请求接口1的执行时长为500毫秒,存入至左子树节点中,请求接口4的执行时长为400毫秒,存入至右子树节点中,请求接口2的执行时长为300毫秒,存入至下一个左子树节点中,请求接口5的执行时长为200毫秒,存入至下一个右子树节点中。[0127] 本申请实施例中,根据每一个请求接口的执行时长,构建得到二叉树,通过遍历二叉树即可快速的得到排列顺序,实现对各个请求接口的快速排序,能够有效的提高请求接口的执行效率。[0128] 综上,通过对每一个请求接口的执行时长进行分析,将执行时长最长的请求接口单独的并行执行,其他的请求接口则根据最长执行时长,来对应的合并,请求接口之间合并串行的总时长不应当超过最长执行时长,如此,可以充分的缩短整个执行链路的执行时间,提高执行接口的执行效率。[0129] 下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。[0130] 图8为本申请实施例提供的接口执行装置的结构示意图,该装置可以集成于服务器中,也可以独立于服务器且与服务器协调工作实现本申请的技术方案。如图8所示,该接口执行装置80包括接口确定模块81、时长获取模块82、链路构建模块83和接口执行模块84。[0131] 接口确定模块81,用于获取接口请求中的接口标识,根据接口标识,确定请求接口;[0132] 时长获取模块82,用于获取每一个请求接口的执行时长;[0133] 链路构建模块83,用于根据每一个请求接口的执行时长,构建执行链路;[0134] 接口执行模块84,用于根据执行链路,执行每一个请求接口。[0135] 其中,执行链路用于指示每一个请求接口的执行顺序和执行方式。[0136] 示例性的,在一些实施例中,上述接口确定模块81具体可以用于获取服务接口的接口信息,根据接口信息,在预设接口中心注册服务接口,接口信息包括接口的服务地址和端口号;以及获取接口请求中的接口标识,根据接口标识,对在预设接口中心注册的服务接口进行查询,得到请求接口。[0137] 示例性的,在一些实施例中,时长获取模块82具体可以用于获取每一个请求接口的初始执行顺序;并根据初始执行顺序,执行每一个请求接口,获取每一个请求接口的执行时长。[0138] 可选的,在一些实施例中,时长获取模块82具体可以用于根据初始执行顺序,分别执行每一个请求接口预设次数,获取每一个请求接口在每一次执行时的执行时间;并根据预设次数和执行时间,获取每一个请求接口的平均执行时间,作为每一个请求接口的执行时长。[0139] 可选的,在一些实施例中,时长获取模块82具体可以用于根据预设的各个连续的时间区段,获取每一个请求接口在每一次执行时,位于每一个时间区段的执行时间的数量,根据预设次数和数量,得到每一个时间区段的概率,将每一个时间区段的概率与每一个时间区段的端点时间值相乘,得到每一个时间区段的执行时间,以及对每一个时间区段的执行时间求和,得到每一个请求接口的平均执行时间。[0140] 示例性的,在一些实施例中,链路构建模块83具体可以用于根据每一个请求接口的执行时长,对每一个请求接口进行排序,得到排列顺序;获取排列顺序最前的请求接口的执行时长,作为执行链路的链路时长;根据链路时长,确定每一个请求接口的执行顺序和执行方式,执行方式包括串行执行和并行执行;根据每一个请求接口的执行顺序和执行方式,构建执行链路。[0141] 可选的,在一些实施例中,链路构建模块83具体可以用于将每一个请求接口的执行时长进行对比,确定每一个请求接口的执行时长的大小关系;并根据每一个请求接口、每一个请求接口的执行时长和大小关系,构建二叉树;以及对二叉树进行遍历,得到排列顺序。[0142] 本申请实施例提供的装置,可用于执行上述实施例中的方法,其实现原理和技术效果类似,在此不再赘述。[0143] 需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,接口确定模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上接口确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。[0144] 例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,ASIC),或,一个或多个微处理器(digitalsignalprocessor,DSP),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system‑on‑a‑chip,SOC)的形式实现。[0145] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solidstatedisk(SSD))等。[0146] 可选的,图9为本申请实施例提供的计算机设备的结构示意图,该计算机设备包括有存储器901和至少一个处理器902,存储器901存储计算机执行指令,该图像处理设备还包括有总线903,其中,存储器901通过总线903与处理器902连接。[0147] 在具体的实现过程中,至少一个处理器902执行存储器901存储的计算机执行指令,使得至少一个处理器902执行如上的图像处理方法。[0148] 处理器902的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。[0149] 在上述的图9所示的实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessingUnit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignalProcessor,简称:DSP)、专用集成电路(英文:ApplicationSpecificIntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。[0150] 存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。[0151] 总线可以是工业标准体系结构(IndustryStandardArchitecture,ISA)总线、外部设备互连(PeripheralComponentInterconnect,PCI)总线或扩展工业标准体系结构(ExtendedIndustryStandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。[0152] 本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上的接口执行方法的步骤。[0153] 本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述接口执行方法的步骤。[0154] 本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a‑b,a‑c,b‑c,或a‑b‑c,其中,a,b,c可以是单个,也可以是多个。[0155] 可以理解的是,在本申请实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。[0156] 最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

专利地区:北京

专利申请日期:2021-01-15

专利公开日期:2024-06-18

专利公告号:CN113760529B

电话咨询
读内容
搜本页
回顶部