接口调度方法、系统及计算机可读存储介质
文献发布时间:2023-06-19 12:13:22
技术领域
本申请涉及金融科技(Fintech)技术领域,尤其涉及一种接口调度方法、系统及计算机可读存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
目前,若需要通过接口调度对应的函数,首先需要手写debounce、throttle…函数,在接口调用时,再手动选择较为匹配的函数并使用,然而,此方法不仅需要开发人员自己开发并维护大量的函数,而且还需要手动指定函数使用。在上述方法的基础上,改进的方法是引入Lodash组件,使用Lodash组件提供的debounce、throttle…函数,在接口调用时,手动选择较为匹配的函数并使用,然而此改进的方法需要开发人员手动选择并使用Lodash组件中对应的函数。由此可知,目前通过接口调度对应函数的方法导致接口调度效率低。
发明内容
本申请的主要目的在于提供一种接口调度方法、系统及计算机可读存储介质,旨在提升接口调度效率。
为实现上述目的,本申请提供一种接口调度方法,所述接口调度方法包括以下步骤:
确定预设时间间隔内触发了接口调度请求的所有接口,并调用分析池函数对各个所述接口的接口信息进行第一次分析,得到各个所述接口的第一匹配函数及其对应的返回数据;
调用所述分析池函数对各个所述返回数据的数据信息进行第二次分析,得到各个所述接口对应的第二匹配函数;
根据所述第一匹配函数和所述第二匹配函数,确定各个所述接口对应的第一目标匹配函数。
可选地,所述接口信息包括接口名称、页面地址和接口参数,所述调用分析池函数对各个所述接口的接口信息进行第一次分析,得到各个所述接口的第一匹配函数的步骤包括:
调用所述分析池函数确定所有接口对应的接口名称和页面地址是否都相同;及
调用所述分析池函数确定各个所述接口对应的接口参数是否都相同;
若所有接口对应的接口名称和页面地址都相同,且所有接口对应的接口参数都相同,则调用所述分析池函数根据所述接口参数确定各个所述接口的第一匹配函数。
可选地,所述接口信息还包括接口请求数量,所述调用所述分析池函数确定所有接口对应的接口名称和页面地址是否都相同的步骤之后,还包括:
若所有接口对应的接口名称和页面地址都不相同,则确定所述接口请求数量是否大于预设数量;
若所述接口请求数量小于或者等于所述预设数量,则为各个所述接口分配普通函数,并将普通函数确定为各个所述接口的第一匹配函数;
若所述接口请求数量大于所述预设数量,则为各个所述接口分配非普通函数,并将非普通函数确定为各个所述接口的第一匹配函数。
可选地,所述调用所述分析池函数确定各个所述接口对应的接口参数是否都相同的步骤之后,还包括:
若所有接口对应的接口参数都不相同,则确定所述接口请求次数是否大于预设次数;
若所述接口请求次数小于或者等于所述预设次数,则为各个所述接口分配普通函数,并将普通函数确定为各个所述接口的第一匹配函数;
若所述接口请求次数大于所述预设次数,则为各个所述接口分配非普通函数,并将非普通函数确定为各个所述接口的第一匹配函数。
可选地,所述调用所述分析池函数对各个所述返回数据的数据信息进行第二次分析,得到各个所述接口对应的第二匹配函数的步骤包括:
调用所述分析池函数对各个所述数据信息中的数据内容、数据请求时长和/或数据大小进行分析,得到各个所述接口对应的第二匹配函数。
可选地,所述根据所述第一匹配函数和所述第二匹配函数,确定各个所述接口对应的第一目标匹配函数的步骤包括:
若所述第一匹配函数和所述第二匹配函数为相同类型函数,则将所述第二匹配函数确定为所述第一目标匹配函数。
可选地,所述根据所述第一匹配函数和所述第二匹配函数,确定各个所述接口对应的第一目标匹配函数的步骤包括:
若所述第一匹配函数和所述第二匹配函数为不同类型函数,则确定所述第一匹配函数和所述第二匹配函数的函数类型,其中,所述函数类型包括非普通函数和普通函数;
若所述第一匹配函数的函数类型为非普通函数,且所述第二匹配函数的函数类型为普通函数,则将所述第一匹配函数确定为所述第一目标匹配函数;
若所述第一匹配函数的函数类型为普通函数,且所述第二匹配函数的函数类型为非普通函数,则将所述第二匹配函数确定为所述第一目标匹配函数。
可选地,所述根据所述第一匹配函数和所述第二匹配函数,确定各个所述接口对应的第一目标匹配函数的步骤之后,还包括:
接收到新的接口触发接口调度请求时,确定所述新的接口是否为第一次触发;
若所述新的接口不是第一次触发,则基于第一次分析和第二次分析确定所述新的接口的第二目标匹配函数;
根据所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数,确定所述新的接口对应的最终匹配函数。
可选地,所述根据所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数,确定所述新的接口对应的最终匹配函数的步骤包括:
若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为不同类型函数,所述新的接口对应的第一目标匹配函数的函数类型为非普通函数,且所述第二目标匹配函数的函数类型为普通函数,则将所述新的接口对应的第一目标匹配函数确定为所述最终匹配函数;
若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为不同类型函数,所述新的接口对应的第一目标匹配函数的函数类型为普通函数,且所述第二目标匹配函数的函数类型为非普通函数,则将所述第二目标匹配函数确定为所述最终匹配函数。
可选地,所述根据所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数,确定所述新的接口对应的最终匹配函数的步骤包括:
若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为相同类型函数,且所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数都是经过所述第二次分析匹配到的函数,则确定所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数的数据请求时长或/和数据大小;
若所述新的接口对应的第一目标匹配函数的数据请求时长小于所述第二目标匹配函数的数据请求时长,或/和,所述新的接口对应的第一目标匹配函数的数据大小小于所述第二目标匹配函数的数据大小,则将所述第二目标匹配函数确定为所述最终匹配函数。
此外,为实现上述目的,本申请还提供一种接口调度系统,所述接口调度系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的接口调度程序,所述接口调度程序被所述处理器执行时实现如上所述的接口调度方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有接口调度程序,所述接口调度程序被处理器执行时实现如上所述的接口调度方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被所述处理器执行时实现如上所述的接口调度方法的步骤。
本申请提供一种接口调度方法、系统及计算机可读存储介质,确定预设时间间隔内触发了接口调度请求的所有接口,调用分析池函数对各个接口的接口信息进行第一次分析,得到各个接口的第一匹配函数及其对应的返回数据;调用分析池函数对各个返回数据的数据信息进行第二次分析,得到各个接口对应的第二匹配函数;根据第一匹配函数和第二匹配函数,确定各个接口对应的第一目标匹配函数。由此可知,本申请在接口调度的过程中增加了分析池函数,通过调用分析池函数对各个接口的接口信息以及返回数据进行分析,返回各个接口所要调度的目标匹配函数,使得能够为各个接口自主分配所要调度的目标匹配函数,而不需要开发人员手动选择各个接口所要调度的匹配函数,提高了接口调度效率。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的系统结构示意图;
图2是本申请接口调度方法第一实施例的流程示意图;
图3是本申请接口调度方法第一实施例步骤S10的细化流程示意图;
图4是本申请接口调度方法另一实施例的流程示意图;
图5是本申请接口调度方法另一实施例的流程示意图;
图6是本申请接口调度方法第一实施例步骤S30的细化流程示意图;
图7是本申请接口调度方法另一实施例的流程示意图;
图8是本申请接口调度方法步骤S60的细化流程示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:确定预设时间间隔内触发了接口调度请求的所有接口,调用分析池函数对各个接口的接口信息进行第一次分析,得到各个接口的第一匹配函数及其对应的返回数据;调用分析池函数对各个返回数据的数据信息进行第二次分析,得到各个接口对应的第二匹配函数;根据第一匹配函数和第二匹配函数,确定各个接口对应的第一目标匹配函数。由此可知,本申请在接口调度的过程中增加了分析池函数,通过调用分析池函数对各个接口的接口信息以及返回数据进行分析,返回各个接口所要调度的目标匹配函数,使得能够为各个接口自主分配所要调度的目标匹配函数,而不需要开发人员手动选择各个接口所要调度的匹配函数,提高了接口调度效率。
具体地,参照图1,图1为本申请实施例方案涉及的硬件运行环境的系统结构示意图。
如图1所示,本申请实施例的系统可以是接口调度系统,也可以是具有数据处理功能的服务器。
如图1所示,该系统可以包括:处理器1001,例如CPU(Central Processing Unit,中央处理器),存储器1005,用户接口1003,网络接口1004,通信总线1002。通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(board),用户接口1003可选的还可以包括标准的有线接口(如USB(Universal SerialBus,通用串行总线)接口)、无线接口(如蓝牙接口)。网络接口1004可以包括标准的有线接口、无线接口(如WiFi(Wireless-Fidelity)接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile Memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。可选地,系统还可以包括RF(Radio Frequency,射频)电路,传感器、WiFi模块等。
本领域技术人员可以理解,图1中示出的系统结构并不构成对系统的限定,可以包括比图示更多或更少的部件,或组合某些部件,或不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及接口调度程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的接口调度程序,并执行以下操作:
确定预设时间间隔内触发了接口调度请求的所有接口,并调用分析池函数对各个所述接口的接口信息进行第一次分析,得到各个所述接口的第一匹配函数及其对应的返回数据;
调用所述分析池函数对各个所述返回数据的数据信息进行第二次分析,得到各个所述接口对应的第二匹配函数;
根据所述第一匹配函数和所述第二匹配函数,确定各个所述接口对应的第一目标匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
调用所述分析池函数确定所有接口对应的接口名称和页面地址是否都相同;及
调用所述分析池函数确定各个所述接口对应的接口参数是否都相同;
若所有接口对应的接口名称和页面地址都相同,且所有接口对应的接口参数都相同,则调用所述分析池函数根据所述接口参数确定各个所述接口的第一匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
若所有接口对应的接口名称和页面地址都不相同,则确定所述接口请求数量是否大于预设数量;
若所述接口请求数量小于或者等于所述预设数量,则为各个所述接口分配普通函数,并将普通函数确定为各个所述接口的第一匹配函数;
若所述接口请求数量大于所述预设数量,则为各个所述接口分配非普通函数,并将非普通函数确定为各个所述接口的第一匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
若所有接口对应的接口参数都不相同,则确定所述接口请求次数是否大于预设次数;
若所述接口请求次数小于或者等于所述预设次数,则为各个所述接口分配普通函数,并将普通函数确定为各个所述接口的第一匹配函数;
若所述接口请求次数大于所述预设次数,则为各个所述接口分配非普通函数,并将非普通函数确定为各个所述接口的第一匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
调用所述分析池函数对各个所述数据信息中的数据内容、数据请求时长和/或数据大小进行分析,得到各个所述接口对应的第二匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
若所述第一匹配函数和所述第二匹配函数为相同类型函数,则将所述第二匹配函数确定为所述第一目标匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
若所述第一匹配函数和所述第二匹配函数为不同类型函数,则确定所述第一匹配函数和所述第二匹配函数的函数类型,其中,所述函数类型包括非普通函数和普通函数;
若所述第一匹配函数的函数类型为非普通函数,且所述第二匹配函数的函数类型为普通函数,则将所述第一匹配函数确定为所述第一目标匹配函数;
若所述第一匹配函数的函数类型为普通函数,且所述第二匹配函数的函数类型为非普通函数,则将所述第二匹配函数确定为所述第一目标匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
接收到新的接口触发接口调度请求时,确定所述新的接口是否为第一次触发;
若所述新的接口不是第一次触发,则基于第一次分析和第二次分析确定所述新的接口的第二目标匹配函数;
根据所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数,确定所述新的接口对应的最终匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为不同类型函数,所述新的接口对应的第一目标匹配函数的函数类型为非普通函数,且所述第二目标匹配函数的函数类型为普通函数,则将所述新的接口对应的第一目标匹配函数确定为所述最终匹配函数;
若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为不同类型函数,所述新的接口对应的第一目标匹配函数的函数类型为普通函数,且所述第二目标匹配函数的函数类型为非普通函数,则将所述第二目标匹配函数确定为所述最终匹配函数。
进一步地,处理器1001可以调用存储器1005中存储的接口调度程序,还执行以下操作:
若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为相同类型函数,且所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数都是经过所述第二次分析匹配到的函数,则确定所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数的数据请求时长或/和数据大小;
若所述新的接口对应的第一目标匹配函数的数据请求时长小于所述第二目标匹配函数的数据请求时长,或/和,所述新的接口对应的第一目标匹配函数的数据大小小于所述第二目标匹配函数的数据大小,则将所述第二目标匹配函数确定为所述最终匹配函数。
本申请提供一种接口调度方法,参照图2,图2是本申请接口调度方法第一实施例的流程示意图。
本申请实施例提供了接口调度方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
本申请本实施例方法的执行主体以接口调度系统作为执行主体进行举例,接口调度方法包括:
步骤S10,确定预设时间间隔内触发了接口调度请求的所有接口,并调用分析池函数对各个所述接口的接口信息进行第一次分析,得到各个所述接口的第一匹配函数及其对应的返回数据。
开发人员需要通过接口调度对应的函数使用时,需要选择在接口调度系统中选择接口,并触发接口调度请求。接口调度系统在接收到接口调度请求被触发后,将预设时间间隔内触发了接口调度请求的所有前端请求(接口)通过统一入口传输至分析池函数中。其中,分析池函数中有各种函数,函数主要包括但不限制于一般(normal)函数、防抖(debounce)函数、截流(throttle)函数、队列(queue)函数和缓存(cache)函数。同时,分析池函数的主要功能有数据统计、数据分析、模式(函数)匹配、数据返回和接口调用。接口调度系统将所有的接口传输至分析池函数后,调用分析池函数对每个接口的接口信息进行第一次分析,为每个接口分配其所要调用的第一匹配函数,及返回其对应的返回数据。其中,接口信息包括但不限制于接口名称、接口请求次数、接口参数、接口请求数量和页面地址。
需要说明的是,预设时间间隔是预先设定的,本实施例为了减小客户端与服务端之间时间点的误差,因此设定预设时间间隔的时间级为毫秒级时间间隔。具体阐述如下:在项目启动时,建立套接字(socket)连接,在socket连接建立完成后,服务端会推送当前服务端毫秒级时间数据至客户端。客户端接收到服务端毫秒级时间数据后,获取本地毫秒级时间数据,并和服务端传输过来的服务端毫秒级时间数据做比较,确定两个时间数据之间误差大小。该误差大小会在每次后端返回时间数据的同时进行更新。接口调用发起时,会将本地时间加上误差时间传送至服务端,从而保证客户端与服务端时间的一致性。
在本实施例中,比如,一应用场景如下,预设时间间隔为1毫秒(ms),接口调度系统则将0-1ms内触发了接口调度请求的所有接口通过统一入口传输至分析池函数中;之后,又将1-2ms内触发了接口调度请求的所有接口通过统一入口传输至分析池函数中;之后,又将2-3ms内触发了接口调度请求的所有接口通过统一入口传输至分析池函数中,...,依次进行下去。
步骤S20,调用所述分析池函数对各个所述返回数据的数据信息进行第二次分析,得到各个所述接口对应的第二匹配函数。
接口调度系统在确定每个接口对应的第一匹配函数及其返回数据之后,会再次将返回数据传输至分析池函数中,调用分析池函数对每个返回数据的数据信息进行第二次分析,为每个返回数据对应的接口分配其所要调用的第二匹配函数。其中,数据信息包括但不限制于数据内容、数据请求时长和/或数据大小,因此,步骤S20的具体说明如下步骤a。步骤a,调用所述分析池函数对各个所述数据信息中的数据内容、数据请求时长和/或数据大小进行分析,得到各个所述接口对应的第二匹配函数。
接口调度系统调用分析池函数对每个返回数据的数据内容、数据请求时长和/或数据大小进行第二次分析,根据每个返回数据的数据内容、数据请求时长和/或数据大小,为每个返回数据对应的接口分配其所要调用的第二匹配函数。具体地,对于返回数据的数据内容而言,若一接口数据内容的内容复杂度低于预设复杂度,则为该接口分配普通函数normal函数,normal函数也即第二匹配函数,其中,预设复杂度是预先设定的,本实施例不作限制。若一接口数据内容的内容复杂度高于或者等于预设复杂度,则为该接口分配非普通函数cache函数,cache函数也即第二匹配函数。对于数据请求时长而言,若一接口的数据请求时长耗时较久(超过debounce间隔时长),且相邻相同接口请求间隔时间较短(不超过debounce间隔时长),则会为该接口分配非普通函数debounce函数,debounce函数也即第二匹配函数。对于返回数据的数据大小而言,若一接口的数据大小小于预设值,则为该接口分配普通函数normal函数,normal函数也即第二匹配函数,其中,预设值是预先设定的,本实施例不作限制。若一接口的数据大小大于或者等于预设值,则为该接口分配非普通函数queue函数,queue函数也即第二匹配函数。
同时,接口调度系统将第一次分析和第二次分析的分析结果转化为分析结果图表进行展示,以暴露部分耗时较久接口,方便优化。
步骤S30,根据所述第一匹配函数和所述第二匹配函数,确定各个所述接口对应的第一目标匹配函数。
接口调度系统在确定每个接口对应的第一匹配函数和第二匹配函数后,根据第一匹配函数和第二匹配函数的函数类型,将第一匹配函数和第二匹配函数的其中一个匹配函数,确定为每个接口对应的目标匹配函数,目标匹配函数也可以理解为每个接口下一次调用时使用的函数,具体步骤如步骤S301至步骤S304。其中,函数类型主要分为普通函数和非普通函数,普通函数包括但不限制于normal函数,非普通函数包括但不限制于debounce函数、throttle函数、queue函数和cache函数。进一步为了更加准确地为各个接口匹配到其对应的匹配函数,对于函数类型及其对应的权重比而言,优选的方案是:对于相同的函数类型而言,第二次分析得到的匹配函数的权重比高于第一次分析得到的匹配函数的权重比;对于不同的函数类型而言,非普通函数的权重比高于普通函数的权重比。因此,若第一匹配函数和第二匹配函数的函数类型是一样的,则第二次分析得到的第二匹配函数的权重比高于第一次分析得到的第一匹配函数的权重比。进一步地,若第一匹配函数和第二匹配函数的函数类型是不一样的,且第一匹配函数为非普通函数,第二匹配函数为普通函数,则第一匹配函数的的权重比高于第二匹配函数的权重比。
本实施例确定预设时间间隔内触发了接口调度请求的所有接口,调用分析池函数对各个接口的接口信息进行第一次分析,得到各个接口的第一匹配函数及其对应的返回数据;调用分析池函数对各个返回数据的数据信息进行第二次分析,得到各个接口对应的第二匹配函数;根据第一匹配函数和第二匹配函数,确定各个接口对应的第一目标匹配函数。由此可知,本实施例在接口调度的过程中增加了分析池函数,通过调用分析池函数对各个接口的接口信息以及返回数据进行分析,返回各个接口所要调度的目标匹配函数,使得能够为各个接口自主分配所要调度的目标匹配函数,而不需要开发人员手动选择各个接口所要调度的匹配函数,提高了接口调度效率。由于接口所要调度的函数都是自主分配的,因此更好的支持了模块化开发,使得开发人员更能专注于模块业务开发,进一步解决了用户因数据量增多,原本接口模式不匹配的问题。
进一步地,参照图3,图3是本申请接口调度方法第一实施例步骤S10的细化流程示意图,所述步骤10包括:
步骤S101,调用所述分析池函数确定所有接口对应的接口名称和页面地址是否都相同;
步骤S102,调用所述分析池函数确定各个所述接口对应的接口参数是否都相同;
步骤S103,若所有接口对应的接口名称和页面地址都相同,且所有接口对应的接口参数都相同,则调用所述分析池函数根据所述接口参数确定各个所述接口的第一匹配函数。
具体地,接口调度系统调用分析池函数确定所有接口对应的接口名称和页面地址是否都相同,以及调用分析池函数确定各个接口对应的接口参数是否都相同。若确定所有接口对应的接口名称和页面地址都相同,且所有接口对应的接口参数都相同,则调用分析池函数对接口参数的参数类型进行分析,根据接口参数确定各个接口对应的第一匹配函数。优选的方案如下:接口调度系统调用分析池函数确定每个接口对应的接口名称和页面地址是否都相同,若确定每个接口对应的接口名称和页面地址都相同,则确定所有的接口都是相同接口。接着,接口调度系统调用分析池函数确定每个接口对应的接口参数是否都相同,若确定每个接口对应的接口参数都相同,则进一步调用分析池函数对接口参数的参数类型进行分析,参数类型包括但不限制于多次刷新类型、一次刷新类型和必须刷新类型,也可以理解为进一步调用分析池函数分析各个接口对应的刷新情况。对于参数类型为必须刷新类型且可添加传参的接口参数,也即此时的接口是必须刷新且可添加传参的,则为每个接口都分配普通函数,即normal函数,并将normal函数确定为每个接口的第一匹配函数。对于参数类型为短时间内多次刷新类型的接口参数,也即此时的接口是需要短时间内经过多次刷新的,则为每个接口都分配非普通函数,此时的非普通函数为缓存函数,即cache函数,并将cache函数确定为每个接口的第一匹配函数。
进一步地,在确定所有的接口都是相同接口的条件下,还存在参数非唯一属性变更的情况,此情况分配到的也是非普通函数,此时的非普通函数为防抖函数,也即debounce函数。参数非唯一属性变更具体分析如下:在接口参数请求时,若发生了参数非唯一属性变更则是不同的请求。因此,需要在分析池函数添加参数,然后校验两次传入参数是否一致,其中,检验过程是通过使用JSON的stringify()方法,将传入参数统一转换为字符串,再根据转换后的结果做对比检验。若两次传入参数不一致,则对参数对象进行深层次递归解析,解析出对象中所有属性,并以递归调用方式,解析出所有属性值为对象的子属性,对比解析后的数据,获取差异属性,及属性值。如果参数对象存在多个属性,两次传入参数对象解析比对后,差异属性只有一个,且差异属性值,符合包含关系,则分配debounce函数。
本实施例通过结合接口名称、页面地址和接口参数为每个接口自主分配对应的第一匹配函数,使得匹配到的第一匹配函数更加准确。
进一步地,参照图4,图4是本申请接口调度方法另一实施例的流程示意图,所述步骤S101之后,还包括:
步骤S104,若所有接口对应的接口名称和页面地址都不相同,则确定所述接口请求数量是否大于预设数量;
步骤S105,若所述接口请求数量小于或者等于所述预设数量,则为各个所述接口分配普通函数,并将普通函数确定为各个所述接口的第一匹配函数;
步骤S106,若所述接口请求数量大于所述预设数量,则为各个所述接口分配非普通函数,并将非普通函数确定为各个所述接口的第一匹配函数。
具体地,接口调度系统若确定每个接口对应的接口名称和页面地址都不相同,则确定所有接口都是不同的。接着,接口调度系统确定接口请求数量是否大于预设数量,若确定接口请求数量小于或者等于预设数量,则为每个接口分配普通函数,并将普通函数确定为每个接口的第一匹配函数。若确定接口请求数量大于预设数量,则为每个接口分配非普通函数,并将非普通函数确定为每个接口的第一匹配函数。其中,预设数量是技术人员设定的,本实施例不作限制。
在本实施例中,比如,预设数量为5,接口调度系统确定所有接口都不同,且确定接口请求数量为4,则为所有接口都分配普通函数。确定接口请求数量为6,则为所有接口都分配非普通函数。
本实施例通过结合接口名称、页面地址和接口请求数量为每个接口自主分配对应的第一匹配函数,使得匹配到的第一匹配函数更加准确。
进一步地,参照图5,图5是本申请接口调度方法另一实施例的流程示意图,所述步骤S102之后,还包括:
步骤S107,若所有接口对应的接口参数都不相同,则确定所述接口请求次数是否大于预设次数;
步骤S108,若所述接口请求次数小于或者等于所述预设次数,则为各个所述接口分配普通函数,并将普通函数确定为各个所述接口的第一匹配函数;
步骤S109,若所述接口请求次数大于所述预设次数,则为各个所述接口分配非普通函数,并将非普通函数确定为各个所述接口的第一匹配函数。
具体地,接口调度系统若确定每个接口对应的接口参数都不相同,则确定接口请求次数是否大于预设次数。若确定接口请求次数小于或者等于预设次数,则为每个接口分配普通函数,并将普通函数确定为每个接口的第一匹配函数。若确定接口请求次数大于预设次数,则为每个接口分配非普通函数,并将非普通函数确定为每个接口的第一匹配函数。其中,预设次数是技术人员设定的,本实施例不作限制。
在本实施例中,比如,预设数量为5,接口调度系统确定所有接口的接口名称和页面地址都相同,但所有接口的接口参数都不同,且确定接口请求次数为4,则为所有接口都分配普通函数。确定接口请求数量为6,则为所有接口都分配非普通函数。
本实施例通过结合接口名称、页面地址和接口请求次数为每个接口自主分配对应的第一匹配函数,使得匹配到的第一匹配函数更加准确。
进一步地,当然并非所有的接口名称和页面地址都相同或者都不相同,以及并非所有接口的接口参数都相同或者都不相同,在这种情况下,具体分析如下:若所有的接口中,有部分接口的接口名称和页面地址相同,有部分的接口名称和页面地址不相同,因此,首先根据接口名称和页面地址对所有的接口进行归类,也即将接口名称和页面地址相同的接口归为一类,接口名称和页面地址不同的接口归为一类。在对所有的接口归类完成后,对于每个归类里的所有接口执行步骤S103,以及步骤S107至步骤S109,即可得到每个归类里每个接口对应的第一匹配函数。
本实施例根据接口名称和页面地址将接口进行分类,再结合接口参数和接口请求次数为每个接口自主分配对应的第一匹配函数,使得匹配到的第一匹配函数更加准确。
进一步地,参照图6,图6是本申请接口调度方法第一实施例步骤S30的细化流程示意图,所述步骤S30包括:
步骤S301,若所述第一匹配函数和所述第二匹配函数为相同类型函数,则将所述第二匹配函数确定为所述第一目标匹配函数。
步骤S302,若所述第一匹配函数和所述第二匹配函数为不同类型函数,则确定所述第一匹配函数和所述第二匹配函数的函数类型,其中,所述函数类型包括非普通函数和普通函数;
步骤S303,若所述第一匹配函数的函数类型为非普通函数,所述第二匹配函数的函数类型为普通函数,则将所述第一匹配函数确定为所述第一目标匹配函数;
步骤S304,若所述第一匹配函数的函数类型为普通函数,所述第二匹配函数的函数类型为非普通函数,则将所述第二匹配函数确定为所述第一目标匹配函数。
需要说明的是,正如步骤S30中的内容所述,为了更加准确地为各个接口匹配到其对应的匹配函数,对于函数类型及其对应的权重比而言,优选的方案是:对于相同的函数类型而言,第二次分析得到的匹配函数的权重比高于第一次分析得到的匹配函数的权重比;对于不同的函数类型而言,非普通函数的权重比高于普通函数的权重比。。因此,非普通函数debounce函数、throttle函数、queue函数和cache函的权重比高于普通函数normal函数的权重比。
具体地,接口调度系统若确定第一匹配函数和第二匹配函数为相同类型函数,则将第二匹配函数确定为每个接口对应的第一目标匹配函数。若确定第一匹配函数和第二匹配函数为不同类型函数,且第一匹配函数的函数类型为非普通函数,第二匹配函数的函数类型为普通函数,则将第一匹配函数确定为每个接口对应的第一目标匹配函数。若第一匹配函数的函数类型为普通函数,第二匹配函数的函数类型为非普通函数,则将第二匹配函数确定为每个接口对应的第一目标匹配函数。
本实施例通过函数类型和权重比确定每个接口对应的目标匹配函数,使得每个接口最后分配到的目标匹配函数更加准确。进一步地,每个接口也即对用着每个用户的用户数据,通过第一匹配函数和第二匹配函数的权重值分配每个接口对应的目标匹配函数,从而获取更匹配用户个人使用习惯的模式。
进一步地,参照图7,图7是本申请接口调度方法另一实施例的流程示意图,所述步骤S30之后,还包括:
步骤S40,接收到新的接口触发接口调度请求时,确定所述新的接口是否为第一次触发;
步骤S50,若所述新的接口不是第一次触发,则基于第一次分析和第二次分析确定所述新的接口的第二目标匹配函数;
步骤S60,根据所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数,确定所述新的接口对应的最终匹配函数。
接口调度系统接收到有新的接口触发接口调度请求时,确定该新的接口是否为第一次触发。若确定该新的接口是第一次触发,也即该新的接口之前是没有被触发执行过步骤S10至步骤S30的,因此需要执行步骤S10至步骤S30得到该新的接口第一次被触发执行得到的对应的第一目标匹配函数。若确定该新的接口不是第一次触发,也即是该新的接口存在对应的第一目标匹配函数,因此,同时也需要执行步骤S10至步骤S30得到该新的接口对应的第二目标匹配函数,然后根据该新的接口对应的第一目标匹配函数和第二目标匹配函数的函数类型,及函数类型对应的权重比,得到该新的接口的最终匹配函数,最终匹配函数同时作为下一次调用时使用的函数。当接口调度系统再次接收到新的接口触发接口调度请求时,不断循环步骤S10至步骤S30,以及步骤S40至步骤S60。进一步地,接口调度系统将得到的最终匹配函数做持久化存储,并对所有接口调用结果进行第三次分析,根据权重比匹配出对应的函数,作为系统推荐接口调用函数。
本实施例接收到新的接口触发接口调度请求时,确定新的接口是否为第一次触发;若新的接口不是第一次触发,则基于第一次分析和第二次分析确定新的接口的第二目标匹配函数;根据新的接口对应的第一目标匹配函数和第二目标匹配函数,确定新的接口对应的最终匹配函数。由此可知,本实施例不断根据第一目标匹配函数和第二目标匹配函数,确定接口对应的最终匹配函数,通过多次循环分析,使得返回的最终匹配函数更加准确,也即返回的最终模式更加符合用户的使用习惯和使用场景。
进一步地,参照图8,图8是本申请接口调度方法步骤S60的细化流程示意图,所述步骤S60包括:
步骤S601,若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为不同类型函数,所述新的接口对应的第一目标匹配函数的函数类型为非普通函数,且所述第二目标匹配函数的函数类型为普通函数,则将所述新的接口对应的第一目标匹配函数确定为所述最终匹配函数;
步骤S602,若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为不同类型函数,所述新的接口对应的第一目标匹配函数的函数类型为普通函数,且所述第二目标匹配函数的函数类型为非普通函数,则将所述第二目标匹配函数确定为所述最终匹配函数;
步骤S603,若所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数为相同类型函数,且所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数都是经过所述第二次分析匹配到的函数,则确定所述新的接口对应的第一目标匹配函数和所述第二目标匹配函数的数据请求时长或/和数据大小;
步骤S604,若所述新的接口对应的第一目标匹配函数的数据请求时长小于所述第二目标匹配函数的数据请求时长,或/和,所述新的接口对应的第一目标匹配函数的数据大小小于所述第二目标匹配函数的数据大小,则将所述第二目标匹配函数确定为所述最终匹配函数。
需要说明的是,若新的接口对应的第一目标匹配函数和第二目标匹配函数都是经过所述第二次分析匹配到的函数,则定义数据请求时长较长,或者数据大小较大的函数的权重比大。
具体地,接口调度系统若确定新的接口对应的第一目标匹配函数和第二目标匹配函数为不同类型函数,且新的接口对应的第一目标匹配函数的函数类型为非普通函数,第二目标匹配函数的函数类型为普通函数,则将新的接口对应的第一目标匹配函数确定为该新的接口的最终匹配函数。若新的接口对应的第一目标匹配函数的函数类型为普通函数,第二目标匹配函数的函数类型为非普通函数,则将第二目标匹配函数确定为该新的接口的最终匹配函数。进一步地,接口调度系统若确定新的接口对应的第一目标匹配函数和第二目标匹配函数为相同类型函数,且新的接口对应的第一目标匹配函数和第二目标匹配函数都是经过所述第二次分析匹配到的函数,则确定新的接口对应的第一目标匹配函数和第二目标匹配函数的数据请求时长或/和数据大小,根据数据请求时长或/和数据大小确定最终匹配函数为该新的接口对应的第一目标匹配函数还是第二目标匹配函数。
具体如下:若新的接口对应的第一目标匹配函数的数据大小等于第二目标匹配函数的数据大小,且新的接口对应的第一目标匹配函数的数据请求时长小于第二目标匹配函数的数据请求时长,则将第二目标匹配函数确定为该新的接口的最终匹配函数。若新的接口对应的第一目标匹配函数的数据请求时长等于第二目标匹配函数的数据请求时长,且新的接口对应的第一目标匹配函数的数据大小小于第二目标匹配函数的数据大小,则将第二目标匹配函数确定为该新的接口的最终匹配函数。若新的接口对应的第一目标匹配函数的数据请求时长小于第二目标匹配函数的数据请求时长,且新的接口对应的第一目标匹配函数的数据大小小于第二目标匹配函数的数据大小,则将第二目标匹配函数确定为该新的接口的最终匹配函数。
进一步地,当然还可以设置优先级,如定义数据请求时长的优先级高于数据大小的优先级,也即,只要确定新的接口对应的第一目标匹配函数的数据请求时长小于第二目标匹配函数的数据请求时长,则直接将第二目标匹配函数确定为该新的接口的最终匹配函数,而不需要数据大小哪个大哪个小。同理,还可以定义数据大小的优先级高于数据请求时长的优先级,也即,只要确定新的接口对应的第一目标匹配函数的数据大小小于第二目标匹配函数的数据大小,则直接将第二目标匹配函数确定为该新的接口的最终匹配函数,而不需要数据请求时长哪个长哪个短。
进一步地,接口调度系统若确定新的接口对应的第一目标匹配函数和第二目标匹配函数为相同类型函数,且新的接口对应的第一目标匹配函数和第二目标匹配函数其中一个是经过所述第一次分析匹配到的函数,另一个是经过所述第二次分析匹配到的函数。若新的接口对应的第一目标匹配函数是经过所述第二次分析匹配到的函数,则将新的接口对应的第一目标匹配函数确定为该新的接口的最终匹配函数。若第二目标匹配函数是经过所述第二次分析匹配到的函数,则将第二目标匹配函数确定为该新的接口的最终匹配函数。
本实施例通过结合函数类型、数据请求时长或/和数据大小确定每个接口的最终匹配函数,使得返回到的最终匹配函数更加准确。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质上存储有接口调度程序,所述接口调度程序被处理器执行时实现如以上任一项实施例所述的接口调度方法的步骤。
本申请计算机可读存储介质的具体实施例与上述接口调度方法各实施例基本相同,在此不作赘述。
本申请还提供一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的接口调度方法的步骤。
本申请计算机程序产品的具体实施例与上述接口调度方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
- 接口调度方法、系统及计算机可读存储介质
- 作业调度方法、装置、计算机系统和计算机可读存储介质