CN114090112B - 配置文件的加载方法和装置、存储介质及电子装置 - Google Patents

配置文件的加载方法和装置、存储介质及电子装置 Download PDF

Info

Publication number
CN114090112B
CN114090112B CN202111257152.6A CN202111257152A CN114090112B CN 114090112 B CN114090112 B CN 114090112B CN 202111257152 A CN202111257152 A CN 202111257152A CN 114090112 B CN114090112 B CN 114090112B
Authority
CN
China
Prior art keywords
target
request
request type
configuration file
loading
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
CN202111257152.6A
Other languages
English (en)
Other versions
CN114090112A (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.)
Qingdao Haier Technology Co Ltd
Haier Smart Home Co Ltd
Original Assignee
Qingdao Haier Technology Co Ltd
Haier Smart Home 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 Qingdao Haier Technology Co Ltd, Haier Smart Home Co Ltd filed Critical Qingdao Haier Technology Co Ltd
Priority to CN202111257152.6A priority Critical patent/CN114090112B/zh
Publication of CN114090112A publication Critical patent/CN114090112A/zh
Application granted granted Critical
Publication of CN114090112B publication Critical patent/CN114090112B/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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种配置文件的加载方法和装置、存储介质及电子装置,其中,上述方法包括:在检测到目标应用中的目标请求的情况下,确定目标请求的目标请求类型;从具有对应关系的请求类型和参考配置文件中获取目标请求类型对应的目标配置文件,其中,目标配置文件用于为目标请求提供执行目标请求的线程任务;加载目标配置文件。采用上述技术方案,解决了相关技术中目标请求的执行效率较低等问题。

Description

配置文件的加载方法和装置、存储介质及电子装置
技术领域
本发明涉及通信领域,具体而言,涉及一种配置文件的加载方法和装置、存储介质及电子装置。
背景技术
在目前主流的微服务架构下,用户发起的一次HTTP请求,会被多个微服务(包含网关微服务、不用的业务微服务等)进行转发、处理。每个微服务都会针对此次HTTP请求进行日志输出。常规做法是,用户请求在到达网关微服务时会生成一个唯一标识与请求绑定,请求在各个微服务中转发时在请求头中携带唯一标识。即在接收到微服务请求时,将唯一标识存储到线程上下文中,在执行请求时按照存储在线程上下文中的唯一标识的顺序进行执行,在微服务进行日志输出时,打印唯一标识。在查找问题时,只需要对唯一标识进行检索,即可查询出此次HTTP请求在多个微服务处全部日志。因为在线程执行和日志打印时或根据存储在线程上下文中的唯一标识进行检索,因此该方法对代码的侵入性较高。
并且在实际开发时,为了增强并发能力、快速响应客户请求,会使用@Async注解,但被@Async注解的方法在实际执行时,会调用异步线程池中的线程进行处理,最后实际执行日志打印的线程是异步线程池中的子线程。子线程在MDC读取线程上下文时,无法获取到唯一标识,导致输出的日志中缺少唯一标识,这种情况下通过对唯一标识的检索自然无法查找到这些异步线程更无法执行线程任务。
针对相关技术中目标请求的执行效率较低等问题,尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种配置文件的加载方法和装置、存储介质及电子装置,以至少解决相关技术中目标请求的执行效率较低等问题。
根据本发明实施例的一个实施例,提供了一种配置文件的加载方法,包括:在检测到目标应用中的目标请求的情况下,确定所述目标请求的目标请求类型;从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件,其中,所述目标配置文件用于为所述目标请求提供执行所述目标请求的线程任务;加载所述目标配置文件。
可选地,确定所述目标请求的所述目标请求类型包括:获取所述目标请求的目标属性信息,其中,所述属性信息用于指示所述目标请求的请求类型;将所述目标属性信息与预设请求类型中每种请求类型的属性信息进行匹配;将所述预设请求类型中属性信息与所述目标属性信息匹配成功的请求类型确定为所述目标请求类型。
可选地,所述将所述目标属性信息与预设请求类型中每种请求类型的属性信息进行匹配包括:检测标签信息是否为目标标签信息或者所述标签信息是否为空,其中,所述属性信息包括请求类型标识信息和与所述请求类型标识信息对应的标签信息,所述请求类型标识信息用于标识请求类型,所述标签信息用于指示所述请求类型标识信息对应的请求类型是否有效;在所述标签信息为目标标签信息或者所述标签信息为空的情况下,将所述目标属性信息的请求类型标识信息与预设请求类型中每种请求类型的属性信息中的请求类型标识信息进行匹配。
可选地,加载所述目标配置文件包括:检测所述目标应用是否开启异步执行功能,其中,开启异步执行功能的所述目标应用可同时加载多个所述参考配置文件;在所述目标应用开启异步执行功能的情况下,检测当前加载的多个所述参考配置文件中是否存在所对应的请求类型与所述目标请求类型相同的配置文件;在当前加载的多个所述参考配置文件中不存在所对应的请求类型与所述目标请求类型相同的配置文件的情况下,加载所述目标配置文件。
可选地,在检测当前加载的多个所述参考配置文件中是否存在所对应的请求类型与所述目标请求类型相同的配置文件之后,所述方法还包括:在当前加载的多个所述参考配置文件中存在所对应的请求类型与所述目标请求类型相同的配置文件的情况下,跳过所述加载所述目标配置文件的步骤;发出目标通知消息,其中,所述目标通知消息用于指示所述目标配置文件为重复加载的配置文件。
可选地,在检测当前加载的多个所述参考配置文件中是否存在与所述目标配置文件的所述目标请求类型相同的配置文件之前,所述方法还包括:获取多个所述参考配置文件的目标加载顺序;按照所述目标加载顺序加载多个所述参考配置文件。
可选地,从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件之前,所述方法还包括:获取所述目标应用中的预设线程程序;在所述预设线程程序中获取与请求类型对应的多个目标线程程序;根据所述请求类型的处理方法确定多个所述目标线程程序的目标执行顺序;根据所述目标执行顺序对所述目标线程进行组合处理,得到与请求类型具有对应关系的所述参考配置文件。
根据本发明实施例的另一个实施例,还提供了一种配置文件的加载装置,包括:第一确定模块,用于在检测到目标应用中的目标请求的情况下,确定所述目标请求的目标请求类型;第一获取模块,用于从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件,其中,所述目标配置文件用于为所述目标请求提供执行所述目标请求的线程任务;第一加载模块,用于加载所述目标配置文件。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述配置文件的加载方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的配置文件的加载方法。
在本发明实施例中,在检测到目标应用中的目标请求的情况下,确定目标请求的目标请求类型;从具有对应关系的请求类型和参考配置文件中获取目标请求类型对应的目标配置文件,其中,目标配置文件用于为目标请求提供执行目标请求的线程任务;加载目标配置文件,即为目标应用中的请求配置参考配置文件,请求的请求类型不同,配置的参考配置文件也不同,该参考配置文件可以为对应的请求提供执行请求的线程任务,在检测到目标应用中的目标请求的情况下,通过确定目标请求的目标请求类型,进而能够在具有对应关系的请求类型和参考配置文件中得到目标请求类型对应的目标配置文件,从而使得在加载了这个目标配置文件后就可以为目标请求提供执行这个目标请求的线程任务,也就是说根据目标请求的请求类型配置为目标请求配置目标配置文件,加载目标配置文件从而为目标请求提供执行目标请求的线程任务,避免了微服务框架下执行请求时对代码的侵入以及线程任务调取失败。采用上述技术方案,解决了相关技术中目标请求的执行效率较低等问题,实现了提高了目标请求的执行效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种配置文件的加载方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的配置文件的加载方法的流程图;
图3是根据本发明实施例的一种可选地配置文件加载流程图;
图4是根据本发明实施例的一种可选地线程任务配置示意图;
图5是根据本发明实施例的一种配置文件的加载装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的方法实施例可以在计算机终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种配置文件的加载方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的配置文件的加载方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种配置文件的加载方法,应用于上述计算机终端,图2是根据本发明实施例的配置文件的加载方法的流程图,该流程包括如下步骤:
步骤S202,在检测到目标应用中的目标请求的情况下,确定所述目标请求的目标请求类型;
步骤S204,从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件,其中,所述目标配置文件用于为所述目标请求提供执行所述目标请求的线程任务;
步骤S206,加载所述目标配置文件。
通过上述步骤,在检测到目标应用中的目标请求的情况下,确定目标请求的目标请求类型;从具有对应关系的请求类型和参考配置文件中获取目标请求类型对应的目标配置文件,其中,目标配置文件用于为目标请求提供执行目标请求的线程任务;加载目标配置文件,为目标应用中的请求配置参考配置文件,请求的请求类型不同,配置的参考配置文件也不同,该参考配置文件可以为对应的请求提供执行请求的线程任务,在检测到目标应用中的目标请求的情况下,通过确定目标请求的目标请求类型,进而能够在具有对应关系的请求类型和参考配置文件中得到目标请求类型对应的目标配置文件,从而使得在加载了这个目标配置文件后就可以为目标请求提供执行这个目标请求的线程任务,也就是说根据目标请求的请求类型配置为目标请求配置目标配置文件,加载目标配置文件从而为目标请求提供执行目标请求的线程任务,避免了微服务框架下执行请求时对代码的侵入以及线程任务调取失败。采用上述技术方案,解决了相关技术中目标请求的执行效率较低等问题,实现了提高了目标请求的执行效率的技术效果。
在上述步骤S202提供的技术方案中,确定目标请求的请求类型可以是通过根据目标请求的属性信息在预设请求类型中进行匹配的方式确定的,该属性信息可以是但不限于包括用于指示请求类型的关键字、标识、语句等等。比如根据目标请求中的关键字在预设请求类型中匹配出目标请求对应的请求类型。
可选地,在本实施例中,目标应用可以但不限于安装在手机、电脑、智能家电设备上的应用。
可选地,在本实施例中,目标应用可以但不限于包括使用SpringBoot框架开发网页、APP、小程序等等。
可选地,在本实施例中,还可以根据需要在配置文件中配置代码补全功能,引入spring-boot-configuration-processor包,增加额外的代码提示相关的配置additional-spring-configuration-metadata.json,使开发时,方便IDE工具识别、配置,比如可以通过如下代码实现根据需要在配置文件中配置代码补全功能:
Figure BDA0003324239820000081
在上述代码中,“"properties":[{"name":"uo.framework.async.enabled","type":"java.lang.Boolean","defaultValue":true,”用于定义“properties”文件的名称为“uo.framework.async.enabled”,请求类型标识信息为“java.lang.Boolean”,标签信息为“true”,代码“<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>”用于引入pom依赖。
在上述步骤S204提供的技术方案中,配置文件中包括用于执行请求的线程以及线程的执行先后顺序,不同的请求类型对应不同的参考配置文件,进而不同的请求对应不同的线程以及线程的执行顺序。
可选地,在本实施例中,请求类型和参考配置文件的对应关系中可以是存储了请求类型和参考配置文件中的文件标签,还可以是存储了请求类型和参考配置文件的文件包,获取是存储类请求类型和参考配置文件的存储路径,本方案对此不做限定。
在上述步骤S206提供的技术方案中,加载目标配置文件可以是根据目标配置文件的路径调取目标配置文件进行加载,还可以实在存储配置文件的存储空间中进行遍历筛选从而加载,本方案对此不做限定。
在一个示例性实施例中,确定所述目标请求的所述目标请求类型包括:
S11,获取所述目标请求的目标属性信息,其中,所述属性信息用于指示所述目标请求的请求类型;
S12,将所述目标属性信息与预设请求类型中每种请求类型的属性信息进行匹配;
S13,将所述预设请求类型中属性信息与所述目标属性信息匹配成功的请求类型确定为所述目标请求类型。
可选地,在本实施例中,目标属性信息可以但不限于是对目标请求的请求语句进行解析得到的。
可选地,在本实施例中,可以是在预设请求类型中的属性信息和目标属性信息中指示请求类型的关键字或者字符之间的匹配度大于设定阈值的情况下确定属性信息和目标属性信息匹配成功;或者是在确定预设请求类型中的属性信息和目标属性信息中指示请求类型的关键字或者字符之间的匹配度大于设定阈值,并且请求类型对应的参考配置文件可用的情况下确定属性信息和目标属性信息匹配成功,本方案对此不做限定。
在一个示例性实施例中,所述将所述目标属性信息与预设请求类型中每种请求类型的属性信息进行匹配包括:
S21,检测标签信息是否为目标标签信息或者所述标签信息是否为空,其中,所述属性信息包括请求类型标识信息和与所述请求类型标识信息对应的标签信息,所述请求类型标识信息用于标识请求类型,所述标签信息用于指示所述请求类型标识信息对应的请求类型是否有效;
S22,在所述标签信息为目标标签信息或者所述标签信息为空的情况下,将所述目标属性信息的请求类型标识信息与预设请求类型中每种请求类型的属性信息中的请求类型标识信息进行匹配。
可选地,在本实施例中,目标标签信息可以但不限于是字符或者代码的形式,比如可以设置目标标签信息为“true”、“false”、“yes”、“no”、“0”、“1”等等,本方案对此不做限定。
在一个示例性实施例中,加载所述目标配置文件包括:
S31,检测所述目标应用是否开启异步执行功能,其中,开启异步执行功能的所述目标应用可同时加载多个所述参考配置文件;
S32,在所述目标应用开启异步执行功能的情况下,检测当前加载的多个所述参考配置文件中是否存在所对应的请求类型与所述目标请求类型相同的配置文件;
S33,在当前加载的多个所述参考配置文件中不存在所对应的请求类型与所述目标请求类型相同的配置文件的情况下,加载所述目标配置文件。
可选地,在本实施例中,检测目标应用程序是够开启异步执行功能可以是通过检测程序代码,看程序代码中是否包含用于开启意不执行功能的代码的方式,还可以是通过检测当前加载的配置文件数量的方式,本方案对此不做限定。
通过以上步骤,在目标应用开启异步执行功能的情况下,检测当前加载的多个参考配置文件中是否存在请求类型与目标请求类型相同的配置文件,在加载的多个参考配置文件中不存在请求类型与目标请求类型相同的配置文件的情况下,在加载目标配置文件,也就是说在加载目标配置文件之前,检测当前加载的参考配置文件中是否存在请求类型相同的配置文件,从而避免了配置文件的重复加载,进而优化了配置文件的加载过程,避免了配置文件的加载冗余。
图3是根据本发明实施例的一种可选地配置文件加载流程图,可以但不限于应用于SpringBoot微服务开发框架下,为用户发起的HTTP请求提供执行HTTP请求的配置文件的加载服务,如图3所示:
步骤S301,使用Spring SPI机制,在Spring factories文件中引入自动配置文件,把目标应用中需要使用的配置文件全部准备好,启动时把这些能够整合的配置文件加载到spring容器中,在判断是否导入了对应的jar包,符合条件的话就启动该请求类型对应的配置文件,Spring factories文件是由一组一组的key value的形式,其中key是EnableAutoConfiguration,vlalue是以AutoConfiguration结尾的类名,配置文件可以是UoFrameworkAsyncAutoConfiguration配置文件,可以通过使用如下代码引入配置文件:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.xxx.uo.framework.async.UoFrameworkAsyncAutoConfiguration
上述代码中“org.springframework.boot.autoconfigure.EnableAutoConfiguration=\”是Spring factories文件的key,key下会有很多字符串,每一个字符串是一个请求类型的全路径,即通过该全路径就可以找到该请求类型对应的配置文件,“com.xxx.uo.framework.async.UoFrameworkAsyncAutoConfiguration”就是“UoFrameworkAsyncAutoConfiguration配置文件”的全路径。
步骤S302,通过检测检测程序代码,看程序代码中是否包含用于开启异步执行功能的代码的方式,或者是通过检测当前加载的配置文件数量的方式,从而检测目标应用是否开启了异步执行功能,当检测到目标应用未开启异步执行功能的情况下,不进行程序的初始化,执行步骤S307,在检测到目标应用开启了异步执行功能的情况下,执行步骤S303。
步骤S303,在加载配置文件前需要根据HTTP请求中的目标属性信息确定http请求对应的请求类型,在目标属性信息满足条件时就会调取这个配置类型对应的配置文件,比如可以通过代码“@ConditionalOnProperty(value={"uo.framework.async.enabled"},matchIfMissing=true)”条件HTTP请求的属性信息,其中“@ConditionalOnProperty”用于对HTTP请求的属性信息进行注解,“value={"uo.framework.async.enabled"}”指示请求类型标识信息为“uo.framework”,通过这个标识信息可确定HTTP请求所对应的请求类型,“matchIfMissing=true”是属性的标签信息(用于指示请求类型标识信息对应的请求类型是否有效),在标签信息为“true”或者为空时认为请求类型标识信息对应的请求类型有效,否则认为请求类型标识信息对应的请求类型无效,在标签信息为“true”或者为空时,可通过如下代码引入对应的配置文件:
@EnableConfigurationProperties(AsyncExecutorProperties.class)
@Import(UoFrameworkAsyncConfig.class)
在上述代码中,“@EnableConfigurationProperties(AsyncExecutorProperties.class)”用于指示开启请求中的属性信息,并在上文的属性信息代码中的标识为“true”或者为空时通过“@Import(UoFrameworkAsyncConfig.class)”加载对应的“UoFrameworkAsyncAutoConfiguration配置文件”,从而加载了“UoFrameworkAsyncAutoConfiguration配置文件”。
步骤S304,因目标应用支持用户自定义覆盖Bean对象,使用了@ConditionalOnMissingBean注解,当存在Executor对象时,不生成新的对象。Spring默认配置中也使用同样的方式,需要指定配置加载顺序,先加载自定义配置,生成Executor对象,然后再加载TaskExecutionAutoConfiguration对应的配置文件,因为已有Executor对象,则不生成新的线程池对象,因此,在加载“UoFrameworkAsyncAutoConfiguration配置文件”时,需要检测Executor对象是否存在,比如可以通过代码“@ConditionalOnMissingBean({Executor.class})”检测Executor对象是否存在,当检测到Executor对象存在时执行步骤S306,在检测到Executor对象不存在时执行步骤S305。
步骤S305,对执行线程任务的线程池进行初始化。
步骤S306,在Executor对象对应的配置文件加载完成后,加载TaskExecutionAutoConfiguration对象对应的配置文件,比如可以通过代码“@AutoConfigureBefore(TaskExecutionAutoConfiguration.class)”自动加载TaskExecutionAutoConfiguration对象对应的配置文件。
步骤S307,在收到的所有请求对应的配置文件都加载完毕后,程序结束。
通过上述实施例可以实现不侵入代码的前提下为接收到的目标请求配置提供执行请求的线程任务的配置文件,解决因为使用异步注解导致实际执行任务线程中丢失链路追踪关键信息的问题。
在一个示例性实施例中,在检测当前加载的多个所述参考配置文件中是否存在所对应的请求类型与所述目标请求类型相同的配置文件之后,所述方法还包括:
S41,在当前加载的多个所述参考配置文件中存在所对应的请求类型与所述目标请求类型相同的配置文件的情况下,跳过所述加载所述目标配置文件的步骤;
S42,发出目标通知消息,其中,所述目标通知消息用于指示所述目标配置文件为重复加载的配置文件。
可选地,在本实施例中,通知消息可以但不限于包括目标文字、目标媒体文件、目标警示标识等等,比如当加测到当前加载的多个参考配置文件中存在对应的请求类型与目标请求类型相同的配置文件的情况下,可以发出“警告,当前加载文件重复”的通知消息,还可以是发出报警音频,本方案对此不做限定。
在一个示例性实施例中,在检测当前加载的多个所述参考配置文件中是否存在与所述目标配置文件的所述目标请求类型相同的配置文件之前,所述方法还包括:
S51,获取多个所述参考配置文件的目标加载顺序;
S52,按照所述目标加载顺序加载多个所述参考配置文件。
可选地,在本实施例中,目标加载顺序可以是存放在某一位置的预先设置的配置文件加载顺序,还可以是其他帐号或者设备发送的配置文件的加载顺序,本方案对此不做限定。
通过以上步骤,通过获取参考配置文件的目标加载顺序,并根据目标加载顺序加载参考配置文件,从而保证了目标应用的运行逻辑的流畅,避免出现运行逻辑混乱的现象。
在一个示例性实施例中,从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件之前,所述方法还包括:
S61,获取所述目标应用中的预设线程程序;
S62,在所述预设线程程序中获取与请求类型对应的多个目标线程程序;
S63,按照所述请求类型的处理方法确定多个所述目标线程程序的目标执行顺序;
S64,按照所述目标执行顺序对所述目标线程进行组合处理,得到与请求类型具有对应关系的所述参考配置文件。
可选地,在本实施例中,预设线程程序中包含目标应用中的全部用于执行请求的线程程序,各个线程程序的之间的代码是独立设置的。
可选地,在本实施例中,请求类型不同,处理该请求类型的请求的线程程序以及各线程程序的运行顺序也不同。
通过以上步骤,不同的请求类型对应不同的目标线程程序,并且在执行请求类型的对应的请求时,各目标应用线程的运行顺序也是不同的,通过在预设线程程序中获取与请求类型对应的目标应用线程程序和目标应用线程程序的目标运行顺序,从而根据目标应用线程程序和目标运行顺序配置出参考配置文件,从而实现自动根据请求类型生成执行请求类型对应的请求的参考配置文件。
图4是根据本发明实施例的一种可选地线程任务配置示意图,如图4所示:用户发起HTTP请求后,将该请求发送至主线程,主线程将HTTP请求对应的任务请求发送至配置好的线程池中,线程池在接收到主线程发送的任务后向主线程发送获取主线程MDC内容的请求,主线程将自己的MDC内容发送至线程池,并向HTTP请求发起端发送请求已处理的通知消息,此时线程池根据主线程发送的任务请求设置子线程的MDC内容以及业务逻辑执行顺序,子线程用于按照顺序执行对应的任务请求的业务逻辑,并将执行结果返回至线程池中,在结果返回后清空各子线程的MDC内容。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
图5是根据本发明实施例的一种配置文件的加载装置的结构框图;如图5所示,包括:
第一确定模块52,用于在检测到目标应用中的目标请求的情况下,确定所述目标请求的目标请求类型;
第一获取模块54,用于从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件,其中,所述目标配置文件用于为所述目标请求提供执行所述目标请求的线程任务;
第一加载模块56,用于加载所述目标配置文件。
可选地,所述第一确定模块包括:获取单元,用于获取所述目标请求的目标属性信息,其中,所述属性信息用于指示所述目标请求的请求类型;匹配单元,用于将所述目标属性信息与预设请求类型中每种请求类型的属性信息进行匹配;确定单元,用于将所述预设请求类型中属性信息与所述目标属性信息匹配成功的请求类型确定为所述目标请求类型。
可选地,所述匹配单元用于:检测标签信息是否为目标标签信息或者所述标签信息是否为空,其中,所述属性信息包括请求类型标识信息和与所述请求类型标识信息对应的标签信息,所述请求类型标识信息用于标识请求类型,所述标签信息用于指示所述请求类型标识信息对应的请求类型是否有效;在所述标签信息为目标标签信息或者所述标签信息为空的情况下,将所述目标属性信息的请求类型标识信息与预设请求类型中每种请求类型的属性信息中的请求类型标识信息进行匹配。
可选地,所述第一加载模块包括:第一检测单元,用于检测所述目标应用是否开启异步执行功能,其中,开启异步执行功能的所述目标应用可同时加载多个所述参考配置文件;第二检测单元,用于在所述目标应用开启异步执行功能的情况下,检测当前加载的多个所述参考配置文件中是否存在所对应的请求类型与所述目标请求类型相同的配置文件;加载单元,用于在当前加载的多个所述参考配置文件中不存在所对应的请求类型与所述目标请求类型相同的配置文件的情况下,加载所述目标配置文件。
可选地,所述装置还包括:第一处理模块,用于在检测当前加载的多个所述参考配置文件中是否存在所对应的请求类型与所述目标请求类型相同的配置文件之后,在当前加载的多个所述参考配置文件中存在所对应的请求类型与所述目标请求类型相同的配置文件的情况下,跳过所述加载所述目标配置文件的步骤;发送模块,用于发出目标通知消息,其中,所述目标通知消息用于指示所述目标配置文件为重复加载的配置文件。
可选地,所述装置还包括:第二获取模块,用于在检测当前加载的多个所述参考配置文件中是否存在与所述目标配置文件的所述目标请求类型相同的配置文件之前,获取多个所述参考配置文件的目标加载顺序;第二加载模块,用于按照所述目标加载顺序加载多个所述参考配置文件。
可选地,所述装置还包括:第三获取模块,用于从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件之前,获取所述目标应用中的预设线程程序;第四获取模块,用于在所述预设线程程序中获取与请求类型对应的多个目标线程程序;第二确定模块,用于根据所述请求类型的处理方法确定多个所述目标线程程序的目标执行顺序;第二处理模块,用于根据所述目标执行顺序对所述目标线程进行组合处理,得到与请求类型具有对应关系的所述参考配置文件。
通过上述实施例,为目标应用中的请求配置参考配置文件,请求的请求类型不同,配置的参考配置文件也不同,该参考配置文件可以为对应的请求提供执行请求的线程任务,在检测到目标应用中的目标请求的情况下,通过确定目标请求的目标请求类型,进而能够在具有对应关系的请求类型和参考配置文件中得到目标请求类型对应的目标配置文件,从而使得在加载了这个目标配置文件后就可以为目标请求提供执行这个目标请求的线程任务,也就是说根据目标请求的请求类型配置为目标请求配置目标配置文件,加载目标配置文件从而为目标请求提供执行目标请求的线程任务,避免了微服务框架下执行请求时对代码的侵入以及线程任务调取失败。采用上述技术方案,解决了相关技术中目标请求的执行效率较低等问题,实现了提高了目标请求的执行效率的技术效果。
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,在检测到目标应用中的目标请求的情况下,确定所述目标请求的目标请求类型;
S2,从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件,其中,所述目标配置文件用于为所述目标请求提供执行所述目标请求的线程任务;
S3,加载所述目标配置文件。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在检测到目标应用中的目标请求的情况下,确定所述目标请求的目标请求类型;
S2,从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件,其中,所述目标配置文件用于为所述目标请求提供执行所述目标请求的线程任务;
S3,加载所述目标配置文件。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种配置文件的加载方法,其特征在于,包括:
在检测到目标应用中的目标请求的情况下,确定所述目标请求的目标请求类型;
从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件,其中,所述目标配置文件用于为所述目标请求提供执行所述目标请求的线程任务;
加载所述目标配置文件;
其中,确定所述目标请求的所述目标请求类型包括:获取所述目标请求的目标属性信息,其中,所述属性信息用于指示所述目标请求的请求类型;将所述目标属性信息与预设请求类型中每种请求类型的属性信息进行匹配;将所述预设请求类型中属性信息与所述目标属性信息匹配成功的请求类型确定为所述目标请求类型;
从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件之前,所述方法还包括:获取所述目标应用中的预设线程程序;在所述预设线程程序中获取与请求类型对应的多个目标线程程序;根据所述请求类型的处理方法确定多个所述目标线程程序的目标执行顺序;根据所述目标执行顺序对所述目标线程进行组合处理,得到与请求类型具有对应关系的所述参考配置文件。
2.根据权利要求1所述的配置文件的加载方法,其特征在于,所述将所述目标属性信息与预设请求类型中每种请求类型的属性信息进行匹配包括:
检测标签信息是否为目标标签信息或者所述标签信息是否为空,其中,所述属性信息包括请求类型标识信息和与所述请求类型标识信息对应的所述标签信息,所述请求类型标识信息用于标识请求类型,所述标签信息用于指示所述请求类型标识信息对应的请求类型是否有效;
在所述标签信息为目标标签信息或者所述标签信息为空的情况下,将所述目标属性信息的请求类型标识信息与预设请求类型中每种请求类型的属性信息中的请求类型标识信息进行匹配。
3.根据权利要求1所述的配置文件的加载方法,其特征在于,加载所述目标配置文件包括:
检测所述目标应用是否开启异步执行功能,其中,开启异步执行功能的所述目标应用可同时加载多个所述参考配置文件;
在所述目标应用开启异步执行功能的情况下,检测当前加载的多个所述参考配置文件中是否存在所对应的请求类型与所述目标请求类型相同的配置文件;
在当前加载的多个所述参考配置文件中不存在所对应的请求类型与所述目标请求类型相同的配置文件的情况下,加载所述目标配置文件。
4.根据权利要求3所述的配置文件的加载方法,其特征在于,在检测当前加载的多个所述参考配置文件中是否存在所对应的请求类型与所述目标请求类型相同的配置文件之后,所述方法还包括:
在当前加载的多个所述参考配置文件中存在所对应的请求类型与所述目标请求类型相同的配置文件的情况下,跳过所述加载所述目标配置文件的步骤;
发出目标通知消息,其中,所述目标通知消息用于指示所述目标配置文件为重复加载的配置文件。
5.根据权利要求3所述的配置文件的加载方法,其特征在于,在检测当前加载的多个所述参考配置文件中是否存在与所述目标配置文件的所述目标请求类型相同的配置文件之前,所述方法还包括:
获取多个所述参考配置文件的目标加载顺序;
按照所述目标加载顺序加载多个所述参考配置文件。
6.一种配置文件的加载装置,其特征在于,包括:
第一确定模块,用于在检测到目标应用中的目标请求的情况下,确定所述目标请求的目标请求类型;
第一获取模块,用于从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件,其中,所述目标配置文件用于为所述目标请求提供执行所述目标请求的线程任务;
第一加载模块,用于加载所述目标配置文件;
其中,所述第一确定模块包括:获取单元,用于获取所述目标请求的目标属性信息,其中,所述属性信息用于指示所述目标请求的请求类型;匹配单元,用于将所述目标属性信息与预设请求类型中每种请求类型的属性信息进行匹配;确定单元,用于将所述预设请求类型中属性信息与所述目标属性信息匹配成功的请求类型确定为所述目标请求类型;
所述装置还包括:第三获取模块,用于从具有对应关系的请求类型和参考配置文件中获取所述目标请求类型对应的目标配置文件之前,获取所述目标应用中的预设线程程序;第四获取模块,用于在所述预设线程程序中获取与请求类型对应的多个目标线程程序;第二确定模块,用于根据所述请求类型的处理方法确定多个所述目标线程程序的目标执行顺序;第二处理模块,用于根据所述目标执行顺序对所述目标线程进行组合处理,得到与请求类型具有对应关系的所述参考配置文件。
7.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至5任一项中所述的方法。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至5任一项中所述的方法。
CN202111257152.6A 2021-10-27 2021-10-27 配置文件的加载方法和装置、存储介质及电子装置 Active CN114090112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111257152.6A CN114090112B (zh) 2021-10-27 2021-10-27 配置文件的加载方法和装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111257152.6A CN114090112B (zh) 2021-10-27 2021-10-27 配置文件的加载方法和装置、存储介质及电子装置

Publications (2)

Publication Number Publication Date
CN114090112A CN114090112A (zh) 2022-02-25
CN114090112B true CN114090112B (zh) 2023-06-16

Family

ID=80297914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111257152.6A Active CN114090112B (zh) 2021-10-27 2021-10-27 配置文件的加载方法和装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN114090112B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017041398A1 (zh) * 2015-09-08 2017-03-16 安一恒通(北京)科技有限公司 数据传输方法和装置
US9798607B1 (en) * 2015-06-30 2017-10-24 EMC IP Holding Company LLC System and method for smart error handling mechanism for an application
CN108429783A (zh) * 2018-01-16 2018-08-21 重庆金融资产交易所有限责任公司 电子装置、配置文件推送方法及存储介质
CN108958933A (zh) * 2018-06-27 2018-12-07 阿里巴巴集团控股有限公司 任务执行器的配置参数更新方法、装置及设备
CN109582655A (zh) * 2018-11-08 2019-04-05 深圳市云智融科技有限公司 系统日志的定位方法及装置、计算机可读存储介质
CN109992414A (zh) * 2019-03-12 2019-07-09 平安普惠企业管理有限公司 一种基于线程池的任务处理方法及装置
CN110162387A (zh) * 2019-04-09 2019-08-23 口口相传(北京)网络技术有限公司 线程调度方法、装置、计算机设备及计算机可读存储介质
CN110333916A (zh) * 2019-06-18 2019-10-15 平安银行股份有限公司 请求消息处理方法、装置、计算机系统及可读存储介质
CN110515711A (zh) * 2019-08-09 2019-11-29 苏州浪潮智能科技有限公司 操作请求的处理方法及装置
CN111459677A (zh) * 2020-04-01 2020-07-28 北京顺达同行科技有限公司 请求分配方法、装置、计算机设备和存储介质
CN112507259A (zh) * 2020-12-15 2021-03-16 广州博冠信息科技有限公司 网页加载方法及装置、电子设备、存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043796B2 (en) * 2011-04-07 2015-05-26 Microsoft Technology Licensing, Llc Asynchronous callback driven messaging request completion notification
US10650013B2 (en) * 2016-12-12 2020-05-12 International Business Machines Corporation Access operation request management

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798607B1 (en) * 2015-06-30 2017-10-24 EMC IP Holding Company LLC System and method for smart error handling mechanism for an application
WO2017041398A1 (zh) * 2015-09-08 2017-03-16 安一恒通(北京)科技有限公司 数据传输方法和装置
CN108429783A (zh) * 2018-01-16 2018-08-21 重庆金融资产交易所有限责任公司 电子装置、配置文件推送方法及存储介质
CN108958933A (zh) * 2018-06-27 2018-12-07 阿里巴巴集团控股有限公司 任务执行器的配置参数更新方法、装置及设备
CN109582655A (zh) * 2018-11-08 2019-04-05 深圳市云智融科技有限公司 系统日志的定位方法及装置、计算机可读存储介质
CN109992414A (zh) * 2019-03-12 2019-07-09 平安普惠企业管理有限公司 一种基于线程池的任务处理方法及装置
CN110162387A (zh) * 2019-04-09 2019-08-23 口口相传(北京)网络技术有限公司 线程调度方法、装置、计算机设备及计算机可读存储介质
CN110333916A (zh) * 2019-06-18 2019-10-15 平安银行股份有限公司 请求消息处理方法、装置、计算机系统及可读存储介质
CN110515711A (zh) * 2019-08-09 2019-11-29 苏州浪潮智能科技有限公司 操作请求的处理方法及装置
CN111459677A (zh) * 2020-04-01 2020-07-28 北京顺达同行科技有限公司 请求分配方法、装置、计算机设备和存储介质
CN112507259A (zh) * 2020-12-15 2021-03-16 广州博冠信息科技有限公司 网页加载方法及装置、电子设备、存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于请求内容的Web应用QoS方法研究;胡冀川;《中国优秀硕士学位论文全文数据库 信息科技辑》;第I139-136页 *
面向资源架构的业务逻辑执行容器的设计与实现;王啸凡;《中国优秀硕士学位论文全文数据库 信息科技辑》;第I138-361页 *

Also Published As

Publication number Publication date
CN114090112A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
US10225145B2 (en) Method and device for updating client
EP3002927B1 (en) Page redirection method, routing device, terminal device and system
CN110309029B (zh) 异常数据的采集方法、装置、计算机设备和存储介质
CN108319662A (zh) 页面处理方法、装置、电子设备及可读存储介质
CN107026821A (zh) 报文的处理方法及装置
CN111740923A (zh) 应用识别规则的生成方法、装置、电子设备和存储介质
CN108494762A (zh) 网页访问方法、装置及计算机可读存储介质、终端
CN114465741B (zh) 一种异常检测方法、装置、计算机设备及存储介质
CN111367690A (zh) 一种支持组合api服务调用方法及装置
CN116523457A (zh) 基于业务流程的工作流处理方法、装置、设备及存储介质
CN113810381A (zh) 一种爬虫检测方法、web应用云防火墙、装置和存储介质
CN105282094A (zh) 一种数据采集方法和系统
CN101964742B (zh) 一种网络开放能力使用方法、系统和装置
CN114090112B (zh) 配置文件的加载方法和装置、存储介质及电子装置
CN108920411A (zh) 一种分布式存储系统的数据采集方法及装置
CN113596105B (zh) 内容的获取方法、边缘节点及计算机可读存储介质
CN106411891B (zh) 文件处理方法、装置、服务端和设备
CN109697072A (zh) 信息处理方法、装置及设备
CN106803830B (zh) 识别上网终端的方法、装置和系统、及uim卡
CN112968825B (zh) 一种消息发送方法、装置、设备及存储介质
CN114422576A (zh) 一种会话清理方法、装置、计算机设备和可读存储介质
CN113300915A (zh) 设备识别方法、系统、电子装置和存储介质
CN106453573A (zh) 一种http服务器中cgi请求的处理方法和系统
CN112787978B (zh) 数据采集方法、装置、计算机设备和计算机可读存储介质
CN114253441A (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