CN109977043A - 接口预热方法、装置、电子设备和存储介质 - Google Patents
接口预热方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN109977043A CN109977043A CN201910223417.7A CN201910223417A CN109977043A CN 109977043 A CN109977043 A CN 109977043A CN 201910223417 A CN201910223417 A CN 201910223417A CN 109977043 A CN109977043 A CN 109977043A
- Authority
- CN
- China
- Prior art keywords
- preheating
- configuration file
- interface
- function
- parameter
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了接口预热方法、装置、电子设备和存储介质。所述方法包括:获取该接口的预热配置文件;对所述预热配置文件进行解析,得到预热元数据;所述预热元数据包括该接口待预热的目标组件的描述信息,及各目标组件对应的预热参数;根据所述预热元数据对该接口进行预热。该技术方案的有益效果在于,通过预先设置预热配置文件,能够使得新接口和老接口在启动后,都能够根据预热元数据进行预热,从而在上线后能够提供稳定的服务,配置文件规范化且复杂度低,便于维护。
Description
技术领域
本申请涉及计算机技术领域,具体涉及接口预热方法、装置、电子设备和存储介质。
背景技术
服务通常是以接口的方式实现的,接口上可以耦合各种各样的基础组件,比如打点、熔断、分布式锁、中间件等。经过分析,当初次调用这些接口时,会由于组件的初始化问题,导致耗时过长,甚至超时,造成服务短暂不可用,因此需要一种相应的解决方案。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的接口预热方法、装置、电子设备和存储介质。
依据本申请的一个方面,提供了一种接口预热方法,包括:
获取该接口的预热配置文件;
对所述预热配置文件进行解析,得到预热元数据;所述预热元数据包括该接口待预热的目标组件的描述信息,及各目标组件对应的预热参数;
根据所述预热元数据对该接口进行预热。
可选地,所述获取该接口的预热配置文件包括:
根据接口配置文件判断是否需要对该接口进行预热;
是则根据所述接口配置文件中记载的预热配置文件的保存路径,从所述保存路径下获取该接口的预热配置文件。
可选地,所述预热配置文件为xml格式;
所述对所述预热配置文件进行解析,得到预热元数据包括:
通过xml解析工具对所述预热配置文件进行解析,得到若干个函数及各函数对应的参数。
可选地,所述预热配置文件包括第一预热配置文件和第二预热配置文件;
所述对所述预热配置文件进行解析,得到预热元数据进一步包括:
对解析得到的若干个函数及各函数对应的参数进行合并;
其中,若一个函数既能从第一预热配置文件中解析得到,也能从第二预热配置文件中解析得到,则将从第二预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第一预热配置文件中解析得到,但不能从第二预热配置文件中解析得到,则将第一预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第二预热配置文件中解析得到,但不能从第一预热配置文件中解析得到,则舍弃解析出的该函数和该函数的预热参数。
可选地,所述方法还包括:
若一个函数被成功预热,将该函数对应的预热参数保存至内存中;
获取各函数对业务数据的执行结果,若执行结果为成功,判断当前是否满足第一更新条件,是则以相应的业务数据替换内存中相应函数的预热参数;
在满足第二更新条件时,以内存中各函数的预热参数更新所述第二预热配置文件中相应函数的参数。
可选地,所述在满足第二更新条件时,以内存中各函数的预热参数更新所述第二预热配置文件中相应函数的参数包括:
启动异步线程,在所述异步线程中设置定时任务,由所述定时任务对相应函数的参数进行更新。
可选地,所述根据所述预热元数据对该接口进行预热包括:
在Spring框架的BeanPostProcessor中获取所述预热元数据对该接口的各Bean进行预热;
和/或,
在Spring Bean的一个生命周期结束时对该接口的相应Bean进行预热。
依据本申请的另一方面,提供了一种接口预热装置,包括:
预热配置单元,用于获取该接口的预热配置文件;
解析单元,用于对所述预热配置文件进行解析,得到预热元数据;所述预热元数据包括该接口待预热的目标方法,及各目标方法对应的预热参数;
预热单元,用于根据所述预热元数据对该接口进行预热。
可选地,所述预热配置单元,用于根据接口配置文件判断是否需要对该接口进行预热;是则根据所述接口配置文件中记载的预热配置文件的保存路径,从所述保存路径下获取该接口的预热配置文件。
可选地,所述预热配置文件为xml格式;
所述解析单元,用于通过xml解析工具对所述预热配置文件进行解析,得到若干个函数及各函数对应的参数。
可选地,所述预热配置文件包括第一预热配置文件和第二预热配置文件;
所述解析单元,用于对解析得到的若干个函数及各函数对应的参数进行合并;其中,若一个函数既能从第一预热配置文件中解析得到,也能从第二预热配置文件中解析得到,则将从第二预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第一预热配置文件中解析得到,但不能从第二预热配置文件中解析得到,则将第一预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第二预热配置文件中解析得到,但不能从第一预热配置文件中解析得到,则舍弃解析出的该函数和该函数的预热参数。
可选地,所述装置还包括:
更新单元,用于若一个函数被成功预热,将该函数对应的预热参数保存至内存中;获取各函数对业务数据的执行结果,若执行结果为成功,判断当前是否满足第一更新条件,是则以相应的业务数据替换内存中相应函数的预热参数;在满足第二更新条件时,以内存中各函数的预热参数更新所述第二预热配置文件中相应函数的参数。
可选地,所述更新单元,用于启动异步线程,在所述异步线程中设置定时任务,由所述定时任务对相应函数的参数进行更新。
可选地,所述预热单元,用于在Spring框架的BeanPostProcessor中获取所述预热元数据对该接口的各Bean进行预热;和/或,在Spring Bean的一个生命周期结束时对该接口的相应Bean进行预热。
依据本申请的又一方面,提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。
依据本申请的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。
由上述可知,本申请的技术方案,可以在接口启动后获取该接口的预热配置文件,对其进行解析,得到对包括该接口待预热的目标组件的描述信息,及各目标组件对应的预热参数的预热元数据,从而根据预热元数据对该接口进行预热。该技术方案的有益效果在于,通过预先设置预热配置文件,能够使得新接口和老接口在启动后,都能够根据预热元数据进行预热,从而在上线后能够提供稳定的服务,配置文件规范化且复杂度低,便于维护。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本申请一个实施例的一种接口预热方法的流程示意图;
图2示出了根据本申请一个实施例的一种接口预热装置的结构示意图;
图3示出了根据本申请一个实施例的电子设备的结构示意图;
图4示出了根据本申请一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
接口实际上包含了以程序设计语言实现的多种组件,组件往往又依赖于各程序设计语言中的方法或函数来实现其功能。以Java实现的接口为例,Java代码需要先编译后再解释运行,这就导致接口在启动后,如果是初次运行某个Java方法,那么需要耗费时间进行编译和解释,这也是就是所谓的初始化问题。
因此,接口预热实际就是先将接口中的一些组件先进行编译和解释,通过一次运行后,避免正常业务功能调用相应组件时,再进行编译和解释,耗时较大。而这样又产生了一个问题,即组件的编译和解释需要数据来驱动,数据的来源和配置也是需要解决的。如果是之前上线过的老接口,那么可以从历史数据中选择一些数据进行驱动,但是对于新接口,这种方式就行不通了。因为历史数据的采集是在接口被调用后,根据执行时间来保存的,所以新接口只有在上线后得到执行,并且达到要求,才会产生历史数据,这样就造成新接口只能在下一次重启或发布时才会进行预热。
为此,本申请针对需要预热的老接口和新接口,都对应设置预热配置文件,从中解析出预热元数据实现预热。下面以具体的实施例进行介绍。
图1示出了根据本申请一个实施例的一种接口预热方法的流程示意图。如图1所示,该方法包括:
步骤S110,获取该接口的预热配置文件。
实际上有一些接口由于自身的功能较简单等原因,不需要进行预热,那么不为其建立对应的预热配置文件即可。又例如一个接口原本需要预热,后续又认为不需要再对其进行预热,那么只需要删除相应的预热配置文件即可,通过预热配置文件的设置,非常灵活地实现了对接口是否需要预热的控制。
步骤S120,对预热配置文件进行解析,得到预热元数据;预热元数据包括该接口待预热的目标组件的描述信息,及各目标组件对应的预热参数。
接口中可能包含多个组件,这些组件也不一定都需要进行预热。因此根据预热元数据可以确定需要预热的目标组件,而预热参数则作为实际的预热数据,对目标组件进行驱动。
步骤S130,根据预热元数据对该接口进行预热。
在服务的各接口完成预热后,就可以进行服务的注册上线,对外提供服务并接入流量了。
可见,图1所示的方法,通过预先设置预热配置文件,能够使得新接口和老接口在启动后,都能够根据预热元数据进行预热,从而在上线后能够提供稳定的服务,配置文件规范化且复杂度低,便于维护。
在本发明的一个实施例中,上述方法中,获取该接口的预热配置文件包括:根据接口配置文件判断是否需要对该接口进行预热;是则根据接口配置文件中记载的预热配置文件的保存路径,从保存路径下获取该接口的预热配置文件。
接口配置文件通常用于配置接口启动、运行所需的一些信息,而在本申请的实施例中可以在其中新增一项,即判断接口是否需要预热。例如,接口配置文件是通过yaml语言编写的yml格式,通过一个专门的字段(如:enable)来配置是否要对接口需要预热(如值为true,则需要预热,值为false,则不需要预热)。
另外,接口配置文件中可以记载预热配置文件的保存路径,当需要对该接口进行预热时就从该保存路径下获取该接口的预热配置文件,再进行后续的解析等步骤。
在本发明的一个实施例中,上述方法中,预热配置文件为xml格式;对预热配置文件进行解析,得到预热元数据包括:通过xml解析工具对预热配置文件进行解析,得到若干个函数及各函数对应的参数。
预热配置文件为xml格式,对预热对象进行定义,具有规范化、容易解析的优点,可以与一般的xml配置采用相似描述方式,也使得业务人员容易编写。当接口预热采用框架方式实现时,还可以降低接入预热框架的复杂度。这种配置方式,可以指定具体的预热类下的函数(方法)、参数配置。具体地,一个服务可以包含多个接口,一个接口可以包含多个组件(如Java Bean),一个组件中可以包含多个类(class),一个类可以包含多个函数(如Java方法)。一个具体的例子中,预热配置文件中以warmup元素标识本文件为预热配置文件,bean来描述具体预热类的bean,class描述预热类,name来描述具体的bean名称,method描述预热类下需要预热的Java方法,param描述Java方法需要的参数。Xml解析工具可以选用JAXB等。
在本发明的一个实施例中,上述方法中,预热配置文件包括第一预热配置文件和第二预热配置文件;对预热配置文件进行解析,得到预热元数据进一步包括:对解析得到的若干个函数及各函数对应的参数进行合并;其中,若一个函数既能从第一预热配置文件中解析得到,也能从第二预热配置文件中解析得到,则将从第二预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第一预热配置文件中解析得到,但不能从第二预热配置文件中解析得到,则将第一预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第二预热配置文件中解析得到,但不能从第一预热配置文件中解析得到,则舍弃解析出的该函数和该函数的预热参数。
这里,第一预热配置文件和第二预热配置文件可以保存在不同的位置,可以类比为在本地及服务端设置不同的预热配置文件,服务端的预热配置文件可以进行更新。第一预热配置文件可以认为是本地的预热配置文件,第二预热配置文件可以认为是服务端的预热配置文件。
那么具体地,若一个函数既能从第一预热配置文件中解析得到,也能从第二预热配置文件中解析得到,说明这个函数确实需要预热。此时,预热参数使用较新的参数,由于第二预热配置文件中的参数可以被更新,那么使用第二预热配置文件中解析得到的该函数的参数作为该函数的预热参数。
若一个函数从第一预热配置文件中解析得到,但不能从第二预热配置文件中解析得到,说明该函数需要预热。这通常是由于接口新增了需要预热的函数,在本地进行了配置,但是没有在服务端进行更新。此时就直接使用第一预热配置文件中解析得到的该函数的参数作为该函数的预热参数。
若一个函数从第二预热配置文件中解析得到,但不能从第一预热配置文件中解析得到,则说明这个函数实际已经不需要进行预热。
可见,第一预热配置文件用于控制对哪些函数进行预热,而第二预热配置文件则用于确定的预热函数所使用的预热参数。
在本发明的一个实施例中,上述方法还包括:若一个函数被成功预热,将该函数对应的预热参数保存至内存中;获取各函数对业务数据的执行结果,若执行结果为成功,判断当前是否满足第一更新条件,是则以相应的业务数据替换内存中相应函数的预热参数;在满足第二更新条件时,以内存中各函数的预热参数更新第二预热配置文件中相应函数的参数。
这示出了根据实际业务场景下产生的数据对预热配置文件进行更新的范例,可以认为在下次接口预热时,根据采集到的历史数据进行预热。这就需要历史数据是执行结果为成功的预热数据,否则会造成预热失败。另外由于执行成功的业务数据是很多的,那么也没有必要频繁地进行预热参数。因此具体地可以设置两个更新条件,这样预热参数的更新实际包含两个阶段;一是本地处理,相应的业务数据替换内存中相应函数的预热参数;另一阶段则是以内存中各函数的预热参数更新第二预热配置文件中相应函数的参数,可能涉及到磁盘写入及网络传输。其中,可以设置一个保活时间,当内存中相应函数的预热参数的存入时间戳与当前时间戳相比超过保活时间时,认为满足第一更新条件。
具体地,可以通过面向切面编程(AOP)模块来拦截各函数,以获取执行结果。
执行结果的判断也可以根据业务需求来进行定义,例如通常可以认为有返回值,就认为执行结果为成功;但是也可以要求返回值必须是某些特定值或落入特定区间才认为执行结果为成功。
在本发明的一个实施例中,上述方法中,所述在满足第二更新条件时,以内存中各函数的预热参数更新第二预热配置文件中相应函数的参数包括:启动异步线程,在异步线程中设置定时任务,由定时任务对相应函数的参数进行更新。
具体地,可以在接口所属的服务启动后,初始化一个包含定时任务的异步线程,负责将内存中各函数的预热参数定时地向第二预热配置文件回写,保证数据的有效性。
上述实施例中提及的保活时间、定时等也可以记载在接口配置文件中。
在本发明的一个实施例中,上述方法中,根据预热元数据对该接口进行预热包括:在Spring框架的BeanPostProcessor中获取预热元数据对该接口的各Bean进行预热;和/或,在Spring Bean的一个生命周期结束时对该接口的相应Bean进行预热。
本实施例可以采用基于Spring实现的预热框架,则利用BeanPostProcessor这一后置处理器,可以将预热作为一个待实现的逻辑通过BeanPostProcessor进行定义。另外一种方式就是在Spring Bean的一个生命周期结束时执行预热,但是这种方式对于多组件的场景适用较差一些。
图2示出了根据本申请一个实施例的一种接口预热装置的结构示意图。如图2所示,接口预热装置200包括:
预热配置单元210,用于获取该接口的预热配置文件。
解析单元220,用于对预热配置文件进行解析,得到预热元数据;预热元数据包括该接口待预热的目标方法,及各目标方法对应的预热参数。
预热单元230,用于根据预热元数据对该接口进行预热。
可见,图2所示的装置,通过各单元的相互配合,预先设置预热配置文件,能够使得新接口和老接口在启动后,都能够根据预热元数据进行预热,从而在上线后能够提供稳定的服务,配置文件规范化且复杂度低,便于维护。
在本发明的一个实施例中,上述装置中,预热配置单元210,用于根据接口配置文件判断是否需要对该接口进行预热;是则根据接口配置文件中记载的预热配置文件的保存路径,从保存路径下获取该接口的预热配置文件。
在本发明的一个实施例中,上述装置中,预热配置文件为xml格式;解析单元220,用于通过xml解析工具对预热配置文件进行解析,得到若干个函数及各函数对应的参数。
在本发明的一个实施例中,上述装置中,预热配置文件包括第一预热配置文件和第二预热配置文件;解析单元220,用于对解析得到的若干个函数及各函数对应的参数进行合并;其中,若一个函数既能从第一预热配置文件中解析得到,也能从第二预热配置文件中解析得到,则将从第二预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第一预热配置文件中解析得到,但不能从第二预热配置文件中解析得到,则将第一预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第二预热配置文件中解析得到,但不能从第一预热配置文件中解析得到,则舍弃解析出的该函数和该函数的预热参数。
在本发明的一个实施例中,上述装置还包括:更新单元,用于若一个函数被成功预热,将该函数对应的预热参数保存至内存中;获取各函数对业务数据的执行结果,若执行结果为成功,判断当前是否满足第一更新条件,是则以相应的业务数据替换内存中相应函数的预热参数;在满足第二更新条件时,以内存中各函数的预热参数更新第二预热配置文件中相应函数的参数。
在本发明的一个实施例中,上述装置中,更新单元,用于启动异步线程,在异步线程中设置定时任务,由定时任务对相应函数的参数进行更新。
在本发明的一个实施例中,上述装置中,预热单元230,用于在Spring框架的BeanPostProcessor中获取预热元数据对该接口的各Bean进行预热;和/或,在Spring Bean的一个生命周期结束时对该接口的相应Bean进行预热。
需要说明的是,上述各装置实施例的具体实施方式可以参照前述对应方法实施例的具体实施方式进行,在此不再赘述。
综上所述,本申请的技术方案,可以在接口启动后获取该接口的预热配置文件,对其进行解析,得到对包括该接口待预热的目标组件的描述信息,及各目标组件对应的预热参数的预热元数据,从而根据预热元数据对该接口进行预热。该技术方案的有益效果在于,通过预先设置预热配置文件,能够使得新接口和老接口在启动后,都能够根据预热元数据进行预热,从而在上线后能够提供稳定的服务,配置文件规范化且复杂度低,便于维护。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的接口预热装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图3示出了根据本申请一个实施例的电子设备的结构示意图。该电子设备包括处理器310和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器320。存储器320可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器320具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码331的存储空间330。例如,用于存储计算机可读程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码331。计算机可读程序代码331可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4所述的计算机可读存储介质。图4示出了根据本申请一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质400存储有用于执行根据本申请的方法步骤的计算机可读程序代码331,可以被电子设备300的处理器310读取,当计算机可读程序代码331由电子设备300运行时,导致该电子设备300执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码331可以执行上述任一实施例中示出的方法。计算机可读程序代码331可以以适当形式进行压缩。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种接口预热方法,其特征在于,该方法包括:
获取该接口的预热配置文件;
对所述预热配置文件进行解析,得到预热元数据;所述预热元数据包括该接口待预热的目标组件的描述信息,及各目标组件对应的预热参数;
根据所述预热元数据对该接口进行预热。
2.如权利要求1所述的方法,其特征在于,所述获取该接口的预热配置文件包括:
根据接口配置文件判断是否需要对该接口进行预热;
是则根据所述接口配置文件中记载的预热配置文件的保存路径,从所述保存路径下获取该接口的预热配置文件。
3.如权利要求1所述的方法,其特征在于,所述预热配置文件为xml格式;
所述对所述预热配置文件进行解析,得到预热元数据包括:
通过xml解析工具对所述预热配置文件进行解析,得到若干个函数及各函数对应的参数。
4.如权利要求3所述的方法,其特征在于,所述预热配置文件包括第一预热配置文件和第二预热配置文件;
所述对所述预热配置文件进行解析,得到预热元数据进一步包括:
对解析得到的若干个函数及各函数对应的参数进行合并;
其中,若一个函数既能从第一预热配置文件中解析得到,也能从第二预热配置文件中解析得到,则将从第二预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第一预热配置文件中解析得到,但不能从第二预热配置文件中解析得到,则将第一预热配置文件中解析得到的该函数的参数作为该函数的预热参数;若一个函数从第二预热配置文件中解析得到,但不能从第一预热配置文件中解析得到,则舍弃解析出的该函数和该函数的预热参数。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
若一个函数被成功预热,将该函数对应的预热参数保存至内存中;
获取各函数对业务数据的执行结果,若执行结果为成功,判断当前是否满足第一更新条件,是则以相应的业务数据替换内存中相应函数的预热参数;
在满足第二更新条件时,以内存中各函数的预热参数更新所述第二预热配置文件中相应函数的参数。
6.如权利要求5所述的方法,其特征在于,所述在满足第二更新条件时,以内存中各函数的预热参数更新所述第二预热配置文件中相应函数的参数包括:
启动异步线程,在所述异步线程中设置定时任务,由所述定时任务对相应函数的参数进行更新。
7.如权利要求1所述的方法,其特征在于,所述根据所述预热元数据对该接口进行预热包括:
在Spring框架的BeanPostProcessor中获取所述预热元数据对该接口的各Bean进行预热;
和/或,
在Spring Bean的一个生命周期结束时对该接口的相应Bean进行预热。
8.一种接口预热装置,其特征在于,该装置包括:
预热配置单元,用于获取该接口的预热配置文件;
解析单元,用于对所述预热配置文件进行解析,得到预热元数据;所述预热元数据包括该接口待预热的目标方法,及各目标方法对应的预热参数;
预热单元,用于根据所述预热元数据对该接口进行预热。
9.一种电子设备,其特征在于,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910223417.7A CN109977043B (zh) | 2019-03-22 | 2019-03-22 | 接口预热方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910223417.7A CN109977043B (zh) | 2019-03-22 | 2019-03-22 | 接口预热方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109977043A true CN109977043A (zh) | 2019-07-05 |
CN109977043B CN109977043B (zh) | 2021-06-22 |
Family
ID=67080153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910223417.7A Active CN109977043B (zh) | 2019-03-22 | 2019-03-22 | 接口预热方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109977043B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709050A (zh) * | 2020-05-21 | 2020-09-25 | 四川虹美智能科技有限公司 | 初始化权限配置参数的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263532A1 (en) * | 2007-04-23 | 2008-10-23 | Inventec Corporation | Data updating method and electric device using the same |
CN104536797A (zh) * | 2015-01-14 | 2015-04-22 | 大唐微电子技术有限公司 | 一种Java程序预编译方法和预编译器 |
CN108304184A (zh) * | 2016-08-09 | 2018-07-20 | 上海思立微电子科技有限公司 | 编译方法及装置 |
CN108874395A (zh) * | 2018-05-22 | 2018-11-23 | 四川创意信息技术股份有限公司 | 一种组件化流处理过程中的硬编译方法及装置 |
-
2019
- 2019-03-22 CN CN201910223417.7A patent/CN109977043B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263532A1 (en) * | 2007-04-23 | 2008-10-23 | Inventec Corporation | Data updating method and electric device using the same |
CN104536797A (zh) * | 2015-01-14 | 2015-04-22 | 大唐微电子技术有限公司 | 一种Java程序预编译方法和预编译器 |
CN108304184A (zh) * | 2016-08-09 | 2018-07-20 | 上海思立微电子科技有限公司 | 编译方法及装置 |
CN108874395A (zh) * | 2018-05-22 | 2018-11-23 | 四川创意信息技术股份有限公司 | 一种组件化流处理过程中的硬编译方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709050A (zh) * | 2020-05-21 | 2020-09-25 | 四川虹美智能科技有限公司 | 初始化权限配置参数的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109977043B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102622241B (zh) | 一种软件升级方法及装置 | |
CN107976986B (zh) | 用于对车辆电子控制模块编程的方法 | |
US7353073B2 (en) | Method for managing appliances | |
US20030051235A1 (en) | Method and apparatus for verifying and analyzing computer software installation | |
TW514774B (en) | System and method for controlling an HVAC system using a flash mini-card | |
EP2456257B1 (en) | Method and system for upgrading wireless data card | |
US9912781B2 (en) | Customized electronic product configuration | |
EP2641175B1 (en) | Networked recovery system | |
US20140173581A1 (en) | System for field upgrading of firmware in multiple units | |
US20070129813A1 (en) | System for managing appliances | |
CN110908859B (zh) | 应用服务处理方法、装置、终端及存储介质 | |
US10261772B2 (en) | Method and device for generating image file | |
EP1906305A2 (en) | Method and system for data preparation and communication between software applications | |
US20170262263A1 (en) | Process and system for the generation of an operating program in the form of a mobile application that is capable of operating on a mobile device | |
CN109977043A (zh) | 接口预热方法、装置、电子设备和存储介质 | |
CN107526584B (zh) | 数据接入方法和装置 | |
CN102833118A (zh) | 远程维护系统及方法 | |
CN103365684B (zh) | 更新方法和多域嵌入式系统 | |
EP1265143A1 (en) | Data processing system and method | |
CN108920171A (zh) | 固件更新方法及装置、电子设备 | |
CN108153223B (zh) | 用于材料处置系统的可扩缩实时网络应用的阶段式部属 | |
CN114072765A (zh) | 用于基于容器的虚拟化系统的方法 | |
CN100478927C (zh) | 使用替换模块的电子设备及方法 | |
CN106484442A (zh) | 服务器系统及更新开机映像档的方法 | |
CN110493644A (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 |