CN114327606B - 配置管理方法、装置、电子设备及计算机可读存储介质 - Google Patents
配置管理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114327606B CN114327606B CN202210235818.6A CN202210235818A CN114327606B CN 114327606 B CN114327606 B CN 114327606B CN 202210235818 A CN202210235818 A CN 202210235818A CN 114327606 B CN114327606 B CN 114327606B
- Authority
- CN
- China
- Prior art keywords
- thread
- configuration
- flag bit
- working
- logic
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种配置管理方法、装置、电子设备及计算机可读存储介质。该方法先根据预设的时间间隔和接收到的配置加载请求读取目标配置,并将该目标配置发送至线程标志位为工作线程的第一线程和线程标志位为备份线程的第二线程,然后根据缓存配置和该目标配置确定配置标志位,若该配置标志位为待应用状态,则切换第一线程和第二线程的线程标志位,以使得第二线程加载目标配置。该方法通过第一线程和第二线程的切换,实现了系统的热配置,避免了系统配置更替过程中的系统重启和业务请求的丢失,提升了系统持续工作的性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种配置管理方法、装置、电子设备及计算机可读存储介质。
背景技术
当前视频监控类信令服务端启动时往往需要加载大量配置,这些配置多数保存在专门的配置管理服务器上,导致系统无法进行热配置。
在当前配置管理模式下,系统启动时往往需要一次性读取配置管理服务器中的配置并应用,而当需要修改配置时,只能重新启动信令服务端以重新读取和应用修改后的配置,这大大降低了系统持续工作的性能。
因此,需要一种配置管理方法以实现系统的热配置,从而提升系统持续工作的性能。
发明内容
本申请提供一种配置管理方法、装置、电子设备及计算机可读存储介质,用于实现系统的热配置,从而提升系统持续工作的性能。
为了解决上述技术问题,本申请提供以下技术方案:
本申请提供一种配置管理方法,包括:
接收配置加载请求;
根据预设的时间间隔和所述配置加载请求读取目标配置,并将所述目标配置发送至第一线程和第二线程;其中,所述第一线程的线程标志位为工作线程,所述第二线程的线程标志位为备份线程;
根据缓存配置和所述目标配置,确定配置标志位;
若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,将所述第二线程的线程标志位切换为工作线程,以使得所述第二线程加载所述目标配置。
相应的,本申请还提供一种配置管理装置,包括:
请求接收模块,接收配置加载请求;
配置读取模块,用于根据预设的时间间隔和所述配置加载请求读取目标配置,并将所述目标配置发送至第一线程和第二线程;其中,所述第一线程的线程标志位为工作线程,所述第二线程的线程标志位为备份线程;
配置标志位确定模块,用于根据缓存配置和所述目标配置,确定配置标志位;
线程切换模块,用于若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,将所述第二线程的线程标志位切换为工作线程,以使得所述第二线程加载所述目标配置。
同时,本申请提供一种电子设备,其包括处理器和存储器,存储器用于存储计算机程序,处理器用于运行所述存储器里的计算机程序,以执行上述配置管理方法中的步骤。
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以执行上述配置管理方法中的步骤。
有益效果:本申请提供一种配置管理方法、装置、电子设备及计算机可读存储介质。具体地,该方法在接收配置加载请求后,根据预设的是啊金间隔和该配置加载请求读取目标配置,并将该目标配置发送至第一线程和第二线程,其中,第一线程的线程标志位为工作线程,第二线程的线程标志位为备份线程,然后根据缓存配置和该目标配置确定配置标志位,最后若该配置标志位表征为待应用状态,则将第一线程的线程标志位切换为备份线程,将第二线程的线程标志位切换为工作线程,以使得该第二线程加载该目标配置。该方法通过配置标志位反映配置是否有被修改,并在监测到配置被修改后,将线程标志位为工作线程的第一线程切换为备份线程,将线程标志位为备份线程的第二线程切换为工作线程,以使得第二线程加载目标配置,通过第一线程和第二线程的互换模拟了系统的重启,实现了系统的热配置,避免了系统配置更替过程中的系统重启和业务请求的丢失,从而提升了系统持续工作的性能。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。
图1是本申请实施例提供的配置管理系统中各单元的关系示意图。
图2是本申请实施例提供的配置管理方法的流程示意图。
图3是本申请实施例提供的配置文件端的逻辑结构示意图。
图4是本申请实施例提供的配置池的逻辑结构示意图。
图5是本申请实施例提供的初始管理器的逻辑结构示意图。
图6是本申请实施例提供的第一线程/第二线程的逻辑结构示意图。
图7是本申请实施例提供的数据暂存器的逻辑结构示意图。
图8是本申请实施例提供的配置管理装置的结构示意图。
图9是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含;本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行。
在本申请中,配置指的是一种计算机文件,可以为一些计算机程序配置参数和初始设置。其中,目标配置为根据配置加载请求从配置池中筛选的最新的配置;缓存配置为初始管理器中正在被加载的配置。
在本申请中,第一线程和第二线程可以理解为同一类型的不同两个对象。具体的,第一线程和第二线程的内部逻辑相同,均包含运行管理逻辑、工作逻辑以及休眠管理逻辑,仅仅是线程标志位不同。其中,线程标志位为工作线程时,运行管理逻辑和工作逻辑被激活,休眠管理逻辑不可用;相反,线程标志位为备份线程时,运行管理逻辑和工作逻辑不可用,休眠管理逻辑被激活。
在本申请中,配置标志位即缓存配置的标志位。配置标志位有两种,一种为待应用状态,另一种为已应用状态。具体的,配置未更新时,配置标志位为已应用状态;配置更新时,配置标志位为待应用状态,直至该更新的配置被加载应用后,才修改为已应用状态。
本申请提供一种配置管理方法、装置、电子设备及计算机可读存储介质。
请参阅图1,图1是本申请提供的配置管理系统中各单元的关系示意图。如图1所示,该配置管理系统至少包括:初始管理器110、配置池120、配置文件端130、第一线程140、第二线程150以及数据暂存器160。下面将对该配置管理系统的各个组成部分的功能进行简单的介绍:
初始管理器110在系统刚刚启动后由程序启动,初始管理器110启动后,会先读取配置池120中的配置,并将该配置给与两个线程,一个是线程标志位为工作线程的第一线程140,一个是线程标志位为备份线程的第二线程150,并启动这两个线程。同时,根据配置的变更情况切换第一线程140和第二线程150,通过两种线程的工作模式互换模拟系统重启,以实现不重启系统即可重新加载配置的目的。
配置池120用于读取和选取远端配置信息及本地配置信息,并对这类配置信息进行校验,校验包含数据校验,时间校验,通过校验保障每次选取的配置信息的完整性和时效性。
配置文件端130主要用于向配置池120提供配置文件,其包括远端配置服务器和本地配置服务器,在一端服务器不可用时,另一端服务器能正常为配置池120提供配置文件,避免了远端配置或者本地配置错误导致系统无法启动运行的情况。
第一线程140和第二线程150为兄弟线程,其内部逻辑完全一样,只是线程标志位不同,第一线程140和第二线程150可以相互切换,避免了配置变更导致的需要重启系统才能应用的问题。具体的,对于线程标志位为工作线程的线程,其主要用于处理实际和具体的工作信息,该线程为服务端正常的工作运行逻辑,间隔一段时间检查自身的线程标志位,如果线程标志位被置为备份线程,则向数据暂存器160写入临时数据后,等待初始管理器110通知进行休眠;对于线程标志位为备份线程的线程,其处于休眠状态,间隔一段时间唤醒,并检查自身状态,如果线程标志位变更为工作线程,则等待初始管理器110通知进入工作模式。
数据暂存器160用于暂存工作数据信息,这类信息只有在工作线程完成当前工作运算后进行存入,以提供给备份线程切换成工作线程时使用。
本申请提出了一种配置管理系统,该配置管理系统可以通过C++语言实现第一线程运行、第二线程候补,配置池定时更新的模式来实现配置的热应用以及本地和远端配置备份,可以较好的应对运行过程中配置的修改读取和应用,避免了系统配置更替过程中的系统重启和业务请求的丢失,同时也避免重启后生效或配置服务故障导致的系统宕机。具体地,以第一线程的线程标志位默认为工作线程,第二线程的线程标志位默认为备份线程为例,当服务端启动时,初始管理器110接收到配置加载请求,并根据预设的时间间隔和该配置加载从配置池120中读取目标配置,并将该目标配置发送至第一线程140和第二线程150,然后初始管理器110对比其本地存储的缓存配置和目标配置的配置信息,如果发现目标配置与缓存配置不一致,则认定目标配置为更新的配置,设置配置标志位为待应用状态,并将第一线程140的线程标志位切换为备份线程,将第二线程150的线程标志位切换为工作线程,以使得第二线程150加载目标配置。
在上述配置管理过程中,通过将服务端启动的一系列工作流程线程化,设计了工作线程/备份线程切换、配置池管理模式,可以较好的应对系统运行过程需要重启系统才能读取和应用更新的配置的问题,提升了系统的续航能力。此外,当远端配置服务器不可用时,配置池可以自动读取本地配置服务器中的配置文件来进行工作,提高了系统的容错性和适应性。
需要说明的是,图1所示的关系示意图仅仅是一个示例,本申请实施例描述的线程、单元以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
综合上述配置管理系统中各单元的关系示意图,下面将对本申请中配置管理方法进行详细的介绍,请参阅图2所示,图2是本申请实施例提供的配置管理方法的流程示意图。下面将对本申请中的配置管理方法进行详细的介绍,该方法至少包括以下步骤:
S201:接收配置加载请求。
视频监控类信令服务端启动时往往需要加载大量配置,这类配置多数保存在专门的配置管理服务器上,当系统启动时会读取并应用这些配置。因此,在本申请提供的配置管理系统中,服务端启动相当于发出了配置加载请求,由初始管理器接收该配置加载请求。
S202:根据预设的时间间隔和配置加载请求读取目标配置,并将目标配置发送至第一线程和第二线程;其中,第一线程的线程标志位为工作线程,第二线程的线程标志位为备份线程。
需要说明的是,为了方便描述,默认第一线程的线程标志位为工作线程,第二线程的线程标志位为备份线程,但并不意味着第一线程只能是工作线程,第二线程只能是备份线程。
在一种实施例中,配置池从配置文件端读取并筛选得到目标配置的具体步骤包括:从配置文件端读取初始态配置,并对初始态配置设立配置标签,配置文件端包括远端配置服务器和本地配置服务器;根据配置标签对初始态配置进行筛选验证,得到中间态配置;根据预设的时间间隔和配置加载请求,从中间态配置中确定目标配置,并将目标配置发送至第一线程和第二线程。其中,如图3所示,图3为本申请实施例提供的配置文件端的逻辑结构示意图,配置文件端包括远端配置服务器和本地配置服务器,远端配置服务器用于存储远端配置,本地配置服务器用于存储本地配置;配置标签即每个配置的基础标签,包括配置名称、配置时间、配置来源以及配置更新时间等;筛选验证指的是丢弃不合适、过期或者较旧的配置。
本申请对配置进行归总抽象形成配置池,配置池可根据配置更新时间自行决断向系统提供哪些配置组合,并将最新的配置组合提供给系统采纳和应用。如图4所示,图4为本申请实施例提供的配置池的逻辑结构示意图。具体地,配置池主要包括三大逻辑,即配置读取逻辑、配置筛选逻辑以及配置组合池逻辑;其中,配置读取逻辑用于进行配置读取,读取逻辑会从远端配置服务器、本地配置服务器等配置提供处(即配置文件端)读取配置(即初始态配置),它为每个来源的配置设立基础标签,例如配置名称,配置时间,配置来源,配置更新时间等;配置筛选逻辑用于根据配置标签对读取的配置进行筛选验证(丢弃不合适、过期或者较旧的配置),例如对于同名但来源不同的配置(即配置名称相同,但配置来源不同的配置),配置筛选逻辑会比对本地配置时间和远端配置时间,留下最新的配置而丢弃较旧的配置,通过配置筛选逻辑可以筛选出合适的配置(即中间态配置)呈递到配置组合池逻辑中,再由配置组合池逻辑呈递给其他模块;配置组合池逻辑主要用于存放各类配置,并根据初始管理器需要读取的配置(即配置加载请求所要读取的配置),按时间、优先级、可信度等排序,给予最新的可用配置(即目标配置)到所需模块。
需要说明的是,本申请在采用配置池管理本地配置和远端配置后,可以保障提供给系统的为最新且合适的配置,避免了远端配置或本地配置错误导致系统无法启动运行的情况。此外,配置池的使用使得系统在调试或者试运行阶段可采用本地配置,方便现场问题处理和排查;正式运行时采用远端配置加本地配置的模式,避免远端配置因网络不可用导致系统不可用的问题,使得系统稳定性和适用性大幅提高。
S203:根据缓存配置和目标配置,确定配置标志位。
在一种实施例中,在读取配置后,需要通过对比缓存配置和目标配置的配置信息,得出目标配置是否有更新的结论,从而确定配置标志位的具体步骤包括:获取缓存配置;对比缓存配置与目标配置的配置信息,得到对比结果;若对比结果表征缓存配置与目标配置的配置信息一致,则保持配置标志位为已应用状态;若对比结果表征缓存配置与目标配置的配置信息不一致,则修改配置标志位为待应用状态。其中,缓存配置指的是初始管理器中正在运行的配置;配置信息指的是存储在内存中的数据,用于通知系统中安装了哪些硬件以及应该如何配置系统才能进行操作。
具体地,该对比过程为初始管理器中的配置管理逻辑所进行的,对于初始管理器的逻辑结构描述将在下文中进行。配置标志位默认是已应用状态,在对比缓存配置和目标配置的配置信息过程中,若发现目标配置与缓存配置不一致,则说明目标配置已被修改,则需要修改配置标志位为待应用状态,且不再按照预设的时间间隔读取配置,以等待目标配置被加载完毕后再重新进行读取和比对;若发现目标配置与缓存配置一致,则说明目标配置未被修改,则保持配置标志位为已应用状态。
S204:若配置标志位表征为待应用状态,则第一线程的线程标志位切换为备份线程,将第二线程的线程标志位切换为工作线程,以使得第二线程加载目标配置。
在一种实施例中,若发现目标配置被修改,则通过切换第一线程和第二线程的工作状态以避免配置更替过程中的系统重启,其具体步骤包括:若配置标志位表征为待应用状态,则将第一线程的线程标志位切换为备份线程,并将第一线程的线程状态修改为休眠状态;监测第一线程的工作逻辑;若第一线程的工作逻辑表征已结束工作,则将第二线程的线程标志位切换为工作线程,并将第二线程的线程状态修改为启动状态,以使得第二线程加载所述目标配置。其中,线程标志位用于指示线程的类型,工作线程即处于运行状态,用于处理工作消息的线程,备份线程即处于休眠状态,等待切换的线程。
上述过程均由初始管理器完成,如图5所示,图5为本申请实施例提供的初始管理器的逻辑结构示意图,初始管理器用于系统启动时的初始化操作,其具体包含三大逻辑,分别为:线程管理逻辑、线程启动逻辑以及配置管理逻辑。
其中,线程管理逻辑用于线程的创建、切换以及暂停等管理工作。例如,系统启动时,线程管理逻辑首先创建第一线程,并设置该第一线程的线程标志位为工作线程、线程状态为启动状态,之后,创建第二线程,并设置该第二线程的线程标志位为备份线程、线程状态为休眠状态;当线程管理逻辑发现有更新的配置时,比如配置标志位变更为待应用状态,则线程管理逻辑会开始准备切换线程标志位为工作线程的第一线程和线程标志位为备份线程的第二线程。具体地,先修改第一线程的线程标志位为备份线程,并将第一线程的线程状态修改为休眠状态,同时定时检查该工作线程的运行情况,一旦该工作线程完成最后的工作进入休眠后,将会把第二线程的线程标志位改为工作线程,并将第二线程的线程状态修改为启动状态,此时,第一线程和第二线程将会完成互换,也即实现了工作线程和备份线程间的互换。
线程启动逻辑用于根据线程管理逻辑为第一线程和第二线程设置的线程标志位和线程状态启动对应的线程。具体地,线程启动逻辑先读取配置管理逻辑中的配置,并按线程管理逻辑的要求启动第一线程或第二线程,启动成功后,设置配置管理逻辑中缓存配置的配置标志位为已应用状态。
配置管理逻辑用于根据配置加载请求定时读取配置池中的目标配置,并将目标配置与自身的缓存配置的配置信息进行比对,如果发现目标配置已被修改,则更新目标配置的配置时间为最新,同时设置配置标志位为待应用状态,并不再定时读取配置,直到线程管理逻辑应用当前读取的目标配置后,再将配置标志位修改为已应用状态,并重新检查配置。
在一种实施例中,将第一线程的线程标志位切换为备份线程,并将第一线程的线程状态修改为休眠状态后,需要对仍发送至第一线程的消息进行处理,其具体步骤包括:截断第一线程工作逻辑的消息输入队列;将发送至第一线程的待处理消息存入数据暂存器。由于第一线程的线程标志位已被切换为备份线程,且线程状态已被修改为休眠状态,因此第一线程应该停止接收向其发送的消息,即通过第一线程的运行状态管理逻辑截断第一线程的工作逻辑的消息输入队列,并将后续到来的待处理消息存入至数据暂存器中,以便第二线程读取和处理。
在一种实施例中,将第一线程切换为第二线程的具体步骤包括:若第一线程的工作逻辑表征已结束工作,则激活第一线程的休眠管理逻辑并触发线程切换指令,终止第一线程的工作逻辑;响应于线程切换指令将第二线程的线程标志位切换为工作线程,并将第二线程的线程状态修改为启动状态;通过第二线程加载目标配置。其中,休眠管理逻辑被激活意味着该弄成的工作结束;工作逻辑用于完成具体的工作,工作逻辑的终止也意味着该线程的运行终止。
在一种实施例中,通过第二线程加载目标配置的具体步骤包括:启动第二线程的运行管理逻辑;通过第二线程的运行管理逻辑启动第二线程的工作逻辑;通过第二线程的工作逻辑加载目标配置。其中,运行管理逻辑的激活意味这该线程的工作开始。
为了对第一线程/第二线程的运行逻辑进行更清晰的描述,本申请提供了第一线程/第二线程的逻辑结构示意图,如图6所示。第一线程和第二线程的内部逻辑相同,仅仅是运行时的线程标志位不同,这类线程标志位标识了线程将以什么身份运行,可用理解为同一类型的不同两个对象。具体的,第一线程/第二线程均包含三大逻辑,分别为:运行管理逻辑、休眠管理逻辑以及工作逻辑。
其中,运行管理逻辑和休眠管理逻辑互斥运行,当线程标志位为工作线程时,运行管理逻辑处于激活状态,休眠管理逻辑处于不可用状态。
运行管理逻辑用于监控工作逻辑的运行情况以及线程标志位,如果线程标志位发生改变,例如由工作线程标志位变更为备份线程标志位时,运行管理逻辑将截断工作逻辑的消息输入队列,并将后续到来的工作处理消息,存入数据暂存器,之后等待工作逻辑完成最后的工作后,激活休眠管理逻辑,终止工作逻辑。
休眠管理逻辑用于定时检查线程状态(启动状态或者休眠状态)。此外,在第一线程的线程标志位由工作线程切换至备份线程的过程中,若系统接收到的新的工作任务消息,则由第一线程的休眠管理逻辑将新的工作任务消息放入数据暂存器中进行缓存,休眠管理逻辑的激活意味着本线程的工作结束,休眠管理逻辑会持续向初始管理器中的线程管理逻辑发送线程切换成功的消息,以通知初始管理器控制第二线程由备份线程向工作线程切换;在第二线程的线程标志位由备份线程切换至工作线程的过程中,将会激活第二线程的运行管理逻辑,该运行管理逻辑将启动第二线程的工作逻辑,并从数据暂存器中读取第一线程存储于其中的待处理消息,之后第二线程的休眠管理逻辑将变为不可用,以完成切换。
工作逻辑用于完成具体工作,每项工作的完成和计算会读取系统配置,根据配置进行工作,其手动监管运行管理逻辑和休眠管理逻辑。
由于切换过程中涉及到数据暂存器对信息的存储,因此对数据暂存器也进行了相应的描述,如图7所示,图7为本申请实施例提供的数据暂存器的逻辑结构示意图。数据暂存器用于存放线程工作态与备份态切换过程中系统无法处理的工作消息,以及切换过程中产生的临时数据、部分中间数据等。具体地,数据暂存器包括三个部分,分别为:未处理消息缓存队列、临时数据队列以及检测逻辑。其中,未处理消息缓存队列用于存储线程由工作态切换成备份态过程中系统无法响应外部的处理请求,为了避免请求丢失,此时的外部请求会暂存到未处理消息缓存队列中,待切换成功后进行读取处理;临时数据队列用于暂时存放线程切换过程中或工作过程中产生的一些临时数据;检测逻辑用于对临时数据队列和未处理消息缓存队列进行定时检测,对于过期或非法数据进行清理操作,保持缓存数据的正确性和及时性。
本申请通过设计第一线程、第二线程、配置池相互合作,通过配置池筛选最新配置,同时通过第一线程和第二线程的热切换,避免了配置变更导致的需要重启服务才能应用的问题;同时,本申请支持本地配置和远端配置,在一方配置不可用时,可以通过配置池筛选其他同名配置进行容错,大大提升了系统的健壮性和适用性。
需要说明的是,本申请的方法可以适用于安防监控领域SIP请求服务端配置管理逻辑。
基于上述实施例的内容,本申请实施例提供了一种配置管理装置。该配置管理装置用于执行上述方法实施例中提供的配置管理方法,具体地,请参阅图8,该装置包括:
请求接收模块801,接收配置加载请求;
配置读取模块802,用于根据预设的时间间隔和所述配置加载请求读取目标配置,并将所述目标配置发送至第一线程和第二线程;其中,所述第一线程的线程标志位为工作线程,所述第二线程的线程标志位为备份线程;
配置标志位确定模块803,用于根据缓存配置和所述目标配置,确定配置标志位;
线程切换模块804,用于若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,将所述第二线程的线程标志位切换为工作线程,以使得所述第二线程加载所述目标配置。
在一种实施例中,配置读取模块802包括:
标签设立模块,用于从配置文件端读取初始态配置,并对所述初始态配置设立配置标签,所述配置文件端包括远端配置服务器和本地配置服务器;
筛选验证模块,用于根据所述配置标签对所述初始态配置进行筛选验证,得到中间态配置;
目标配置确定模块,用于根据预设的时间间隔和所述配置加载请求,从所述中间态配置中确定目标配置,并将所述目标配置发送至第一线程和第二线程。
在一种实施例中,配置标志位确定模块803包括:
第一获取模块,用于获取缓存配置;
信息对比模块,用于对比所述缓存配置与所述目标配置的配置信息,得到对比结果;
第一确定模块,用于若所述对比结果表征所述缓存配置与所述目标配置的配置信息一致,则保持配置标志位为已应用状态;
第二确定模块,用于若所述对比结果表征所述缓存配置与所述目标配置的配置信息不一致,则修改所述配置标志位为待应用状态。
在一种实施例中,线程切换模块804包括:
第一切换模块,用于若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,并将所述第一线程的线程状态修改为休眠状态;
监测模块,用于监测所述第一线程的工作逻辑;
第二切换模块,用于若所述第一线程的工作逻辑表征已结束工作,则将所述第二线程的线程标志位切换为工作线程,并将所述第二线程的线程状态修改为启动状态,以使得所述第二线程加载所述目标配置。
在一种实施例中,配置管理装置还包括:
消息截断模块,用于截断所述第一线程工作逻辑的消息输入队列;
消息存入模块,用于将发送至所述第一线程的待处理消息存入数据暂存器。
在一种实施例中,第二切换模块包括:
第一激活模块,用于若所述第一线程的工作逻辑表征已结束工作,则激活所述第一线程的休眠管理逻辑并触发线程切换指令,终止所述第一线程的工作逻辑;
指令响应模块,用于响应于所述线程切换指令将所述第二线程的线程标志位切换为工作线程,并将所述第二线程的线程状态修改为启动状态;
配置加载模块,用于通过所述第二线程加载所述目标配置。
在一种实施例中,配置加载模块包括:
第一启动模块,用于启动所述第二线程的运行管理逻辑;
第二启动模块,用于通过所述第二线程的运行管理逻辑启动所述第二线程的工作逻辑;
配置加载子模块,用于通过所述第二线程的工作逻辑加载所述目标配置。
本申请实施例的配置管理装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
区别于当前的技术,本申请提供的配置管理装置设置了配置标志位确定模块和线程切换模块,通过配置标志位确定模块确定配置是否有被修改,并在监测到配置被修改后,通过线程切换模块将线程标志位为工作线程的第一线程切换为备份线程,将线程标志位为备份线程的第二线程切换为工作线程,以使得第二线程加载目标配置,通过第一线程和第二线程的互换模拟了系统的重启,实现了系统的热配置,避免了系统配置更替过程中的系统重启和业务请求的丢失,从而提升了系统持续工作的性能。
相应的,本申请实施例还提供一种电子设备,如图9所示,该电子设备可以包括有一个或者一个以上处理核心的处理器901、无线(WiFi,Wireless Fidelity)模块902、有一个或一个以上计算机可读存储介质的存储器903、音频电路904、显示单元905、输入单元906、传感器907、电源908、以及射频(RF,Radio Frequency)电路909等部件。本领域技术人员可以理解,图9中示出的电子设备的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器903内的软件程序和/或模块,以及调用存储在存储器903内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。在一种实施例中,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。
WiFi属于短距离无线传输技术,电子设备通过无线模块902可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了无线模块902,但是可以理解的是,其并不属于终端的必需构成,完全可以根据需要在不改变发明的本质的范围内而省略。
存储器903可用于存储软件程序以及模块,处理器901通过运行存储在存储器903的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器903可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器903可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器903还可以包括存储器控制器,以提供处理器901和输入单元906对存储器903的访问。
音频电路904包括扬声器,扬声器可提供用户与电子设备之间的音频接口。音频电路904可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,扬声器将收集的声音信号转换为电信号,由音频电路904接收后转换为音频数据,再将音频数据输出处理器901处理后,经射频电路909发送给比如另一电子设备,或者将音频数据输出至存储器903以便进一步处理。音频电路904还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
显示单元905可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元905可包括显示面板,在一种实施例中,可以采用液晶显示器(LCD,Liquid CrystalDisplay)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。
输入单元906可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元906可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。在一种实施例中,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器901,并能接收处理器901发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元906还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
电子设备还可包括至少一种传感器907,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及距离传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度;至于电子设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
电子设备还包括给各个部件供电的电源908(比如电池),优选的,电源可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源908还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
射频电路909可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器901处理;另外,将涉及上行的数据发送给基站。通常,射频电路909包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,射频电路909还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器903中,并由处理器901来运行存储在存储器903中的应用程序,从而实现以下功能:
接收配置加载请求;
根据预设的时间间隔和所述配置加载请求读取目标配置,并将所述目标配置发送至第一线程和第二线程;其中,所述第一线程的线程标志位为工作线程,所述第二线程的线程标志位为备份线程;
根据缓存配置和所述目标配置,确定配置标志位;
若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,将所述第二线程的线程标志位切换为工作线程,以使得所述第二线程加载所述目标配置。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以实现上述配置管理方法的功能。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本申请实施例所提供的配置管理方法、装置、电子设备以及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种配置管理方法,其特征在于,包括:
接收配置加载请求;
从配置文件端读取初始态配置,并对所述初始态配置设立配置标签,所述配置文件端包括远端配置服务器和本地配置服务器;
根据所述配置标签对所述初始态配置进行筛选验证,得到中间态配置;
根据预设的时间间隔和所述配置加载请求,从所述中间态配置中确定目标配置,并将所述目标配置发送至第一线程和第二线程;其中,所述第一线程和所述第二线程的内部逻辑相同,所述第一线程的线程标志位为工作线程,所述第二线程的线程标志位为备份线程;
根据缓存配置和所述目标配置,确定配置标志位;
若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,将所述第二线程的线程标志位切换为工作线程,以使得所述第二线程加载所述目标配置。
2.根据权利要求1所述的配置管理方法,其特征在于,所根据缓存配置和所述目标配置,确定配置标志位的步骤,包括:
获取缓存配置;
对比所述缓存配置与所述目标配置的配置信息,得到对比结果;
若所述对比结果表征所述缓存配置与所述目标配置的配置信息一致,则保持配置标志位为已应用状态;
若所述对比结果表征所述缓存配置与所述目标配置的配置信息不一致,则修改所述配置标志位为待应用状态。
3.根据权利要求1所述的配置管理方法,其特征在于,所述若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,将所述第二线程的线程标志位切换为工作线程,以使得所述第二线程加载所述目标配置的步骤,包括:
若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,并将所述第一线程的线程状态修改为休眠状态;
监测所述第一线程的工作逻辑;
若所述第一线程的工作逻辑表征已结束工作,则将所述第二线程的线程标志位切换为工作线程,并将所述第二线程的线程状态修改为启动状态,以使得所述第二线程加载所述目标配置。
4.根据权利要求3所述的配置管理方法,其特征在于,在所述若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,并将所述第一线程的线程状态修改为休眠状态的步骤之后,还包括:
截断所述第一线程工作逻辑的消息输入队列;
将发送至所述第一线程的待处理消息存入数据暂存器。
5.根据权利要求3所述的配置管理方法,其特征在于,所述若所述第一线程的工作逻辑表征已结束工作,则将所述第二线程的线程标志位切换为工作线程,并将所述第二线程的线程状态修改为启动状态,以使得所述第二线程加载所述目标配置的步骤,包括:
若所述第一线程的工作逻辑表征已结束工作,则激活所述第一线程的休眠管理逻辑并触发线程切换指令,终止所述第一线程的工作逻辑;
响应于所述线程切换指令将所述第二线程的线程标志位切换为工作线程,并将所述第二线程的线程状态修改为启动状态;
通过所述第二线程加载所述目标配置。
6.根据权利要求5所述的配置管理方法,其特征在于,所述通过所述第二线程加载所述目标配置的步骤,包括:
启动所述第二线程的运行管理逻辑;
通过所述第二线程的运行管理逻辑启动所述第二线程的工作逻辑;
通过所述第二线程的工作逻辑加载所述目标配置。
7.一种配置管理装置,其特征在于,包括:
请求接收模块,接收配置加载请求;
标签设立模块,用于从配置文件端读取初始态配置,并对所述初始态配置设立配置标签,所述配置文件端包括远端配置服务器和本地配置服务器;
筛选验证模块,用于根据所述配置标签对所述初始态配置进行筛选验证,得到中间态配置;
目标配置确定模块,用于根据预设的时间间隔和所述配置加载请求,从所述中间态配置中确定目标配置,并将所述目标配置发送至第一线程和第二线程其中,所述第一线程和所述第二线程的内部逻辑相同,所述第一线程的线程标志位为工作线程,所述第二线程的线程标志位为备份线程;
配置标志位确定模块,用于根据缓存配置和所述目标配置,确定配置标志位;
线程切换模块,用于若所述配置标志位表征为待应用状态,则将所述第一线程的线程标志位切换为备份线程,将所述第二线程的线程标志位切换为工作线程,以使得所述第二线程加载所述目标配置。
8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于运行所述存储器里的计算机程序,以执行权利要求1至6任一项所述的配置管理方法中的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至6任一项所述的配置管理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210235818.6A CN114327606B (zh) | 2022-03-11 | 2022-03-11 | 配置管理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210235818.6A CN114327606B (zh) | 2022-03-11 | 2022-03-11 | 配置管理方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327606A CN114327606A (zh) | 2022-04-12 |
CN114327606B true CN114327606B (zh) | 2022-07-05 |
Family
ID=81033448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210235818.6A Active CN114327606B (zh) | 2022-03-11 | 2022-03-11 | 配置管理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327606B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860347A (zh) * | 2022-05-27 | 2022-08-05 | 上海联影医疗科技股份有限公司 | 一种孪生进程重启方法、设备、医疗系统及存储介质 |
CN115174522B (zh) * | 2022-07-05 | 2024-07-19 | 易事特储能科技有限公司 | 电子设备id配置方法、装置、设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999021083A1 (en) * | 1997-10-23 | 1999-04-29 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
CN112083975A (zh) * | 2020-09-22 | 2020-12-15 | 北京金山云网络技术有限公司 | 内存配置的切换方法、装置、系统、电子设备及存储介质 |
CN112506585A (zh) * | 2020-12-28 | 2021-03-16 | 浪潮云信息技术股份公司 | 一种基于Java动态改变Nginx配置的系统及方法 |
CN112612545A (zh) * | 2020-12-23 | 2021-04-06 | 北京浪潮数据技术有限公司 | 一种服务器集群的配置热加载系统、方法、设备及介质 |
CN113342386A (zh) * | 2021-05-07 | 2021-09-03 | 武汉虚咖科技有限公司 | 一种go服务器热更新方法及相关设备 |
CN114063894A (zh) * | 2020-08-07 | 2022-02-18 | 华为技术有限公司 | 一种协程执行方法及装置 |
CN114064681A (zh) * | 2021-12-17 | 2022-02-18 | 深圳前海微众银行股份有限公司 | 配置参数更新方法、装置及设备 |
CN114138371A (zh) * | 2021-12-02 | 2022-03-04 | 北京天融信网络安全技术有限公司 | 配置动态加载方法、装置及计算机设备、存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7681020B2 (en) * | 2007-04-18 | 2010-03-16 | International Business Machines Corporation | Context switching and synchronization |
GB2565338B (en) * | 2017-08-10 | 2020-06-03 | Mips Tech Llc | Fault detecting and fault tolerant multi-threaded processors |
CN109814949B (zh) * | 2019-01-07 | 2022-04-22 | 平安科技(深圳)有限公司 | 虚拟电话状态切换方法、装置、计算机设备和存储介质 |
-
2022
- 2022-03-11 CN CN202210235818.6A patent/CN114327606B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999021083A1 (en) * | 1997-10-23 | 1999-04-29 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
CN1276887A (zh) * | 1997-10-23 | 2000-12-13 | 国际商业机器公司 | 多线程处理器系统中的线程切换控制 |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
CN114063894A (zh) * | 2020-08-07 | 2022-02-18 | 华为技术有限公司 | 一种协程执行方法及装置 |
CN112083975A (zh) * | 2020-09-22 | 2020-12-15 | 北京金山云网络技术有限公司 | 内存配置的切换方法、装置、系统、电子设备及存储介质 |
CN112612545A (zh) * | 2020-12-23 | 2021-04-06 | 北京浪潮数据技术有限公司 | 一种服务器集群的配置热加载系统、方法、设备及介质 |
CN112506585A (zh) * | 2020-12-28 | 2021-03-16 | 浪潮云信息技术股份公司 | 一种基于Java动态改变Nginx配置的系统及方法 |
CN113342386A (zh) * | 2021-05-07 | 2021-09-03 | 武汉虚咖科技有限公司 | 一种go服务器热更新方法及相关设备 |
CN114138371A (zh) * | 2021-12-02 | 2022-03-04 | 北京天融信网络安全技术有限公司 | 配置动态加载方法、装置及计算机设备、存储介质 |
CN114064681A (zh) * | 2021-12-17 | 2022-02-18 | 深圳前海微众银行股份有限公司 | 配置参数更新方法、装置及设备 |
Non-Patent Citations (2)
Title |
---|
Nginx学习笔记之reload重载配置文件真相;NGC_2070;《https://blog.csdn.net/baidu_41388533/article/details/106899321》;20200622;全文第1-3页 * |
nocas配置中心热更新原理_配置中心——Apollo小记;weixin_39801714;《https://blog.csdn.net/weixin_39801714/article/details/112503351 1/》;20201230;全文第1-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114327606A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416061B2 (en) | Terminal control method and apparatus, and terminal | |
US10732696B2 (en) | Method and apparatus for wake-up control of intelligent terminal | |
CN114327606B (zh) | 配置管理方法、装置、电子设备及计算机可读存储介质 | |
CN106155818B (zh) | 一种终端拉取信息的处理方法和终端以及服务器 | |
CN108702421B (zh) | 用于控制应用和组件的电子设备和方法 | |
CN107273160A (zh) | 一种版本升级的方法及装置 | |
CN105760203A (zh) | 一种软件升级方法及终端设备 | |
US9588757B2 (en) | Data update method, user terminal, and data update system | |
US20220022139A1 (en) | Control method for doze mode of mobile terminal, storage medium and mobile terminal | |
CN104253870A (zh) | 控制数据访问周期的方法和装置 | |
US9928134B2 (en) | Method and apparatus for repairing dynamic link library file | |
CN114090270B (zh) | 线程管理方法、装置、电子设备及计算机可读存储介质 | |
CN113039517A (zh) | 一种音频资源调用的方法、装置及电子设备 | |
CN104717283A (zh) | 文件下载的控制方法、终端及逻辑处理服务器 | |
CN112866422B (zh) | 一种数据请求处理方法和装置 | |
CN115373865A (zh) | 一种并发线程管理方法、装置、电子设备和存储介质 | |
CN109426572B (zh) | 任务处理方法、装置及电子设备 | |
CN108280798B (zh) | 一种浏览器内核渲染显示的方法和装置 | |
CN111638897B (zh) | 系统更新方法、装置、终端设备及存储介质 | |
CN109062593B (zh) | 应用处理方法和装置、电子设备、计算机可读存储介质 | |
CN106484455A (zh) | 一种更新应用程序的安装数据的方法、装置和系统 | |
CN116578546A (zh) | 一种基于数据库的数据处理方法、系统、装置及存储介质 | |
CN117111972A (zh) | 终端设备的组件更新方法、装置、终端设备和存储介质 | |
CN116126486A (zh) | 联机服务响应方法、装置、电子设备及存储介质 | |
CN117407010A (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 |