[发明专利]一种配置加载方法和系统有效
申请号: | 201710264030.7 | 申请日: | 2017-04-21 |
公开(公告)号: | CN107092491B | 公开(公告)日: | 2021-04-16 |
发明(设计)人: | 宁志超;林志远 | 申请(专利权)人: | 网宿科技股份有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401 |
代理公司: | 北京华智则铭知识产权代理有限公司 11573 | 代理人: | 田建涛 |
地址: | 200030 上海市徐汇区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 配置 加载 方法 系统 | ||
1.一种配置加载方法,其特征在于,包括:
接收通过接口输入的配置信息;
根据所述配置信息生成配置对象,为所述配置对象分配唯一的序号并确定配置对象之间的依赖关系;所述配置对象的成员包括属性、方法和存储;
以邻接表的形式存储所有配置对象及其依赖关系,得到第一邻接表;
对所述第一邻接表进行遍历,得到配置对象的加载序列;
按照所述加载序列,依次加载所述配置对象。
2.如权利要求1所述的方法,其特征在于,结合深度优先遍历和广度优先遍历,对所述第一邻接表进行遍历,得到配置对象的加载序列,包括:
从所述第一邻接表中的指定节点开始进行深度优先遍历,对于每一个被访问的节点,均执行以下步骤A1至步骤A4,直至所述第一邻接表中的所有节点都已被遍历:
步骤A1,记录该节点的访问次数;
步骤A2,判断所述节点的访问次数是否等于存储在该节点处的配置对象的出度;
步骤A3,如果是,则说明当前节点被遍历,继续进行深度优先遍历,访问依赖于所述当前节点,若没有节点依赖于所述当前节点,则返回到被所述当前节点依赖的节点处,进行广度优先遍历,访问下一个未被遍历的节点;
步骤A4,如果否,则暂时停止深度优先遍历,返回到被所述当前节点依赖的节点处,转为广度优先遍历,访问下一个未被遍历的节点;将所述配置对象被遍历的先后顺序作为所述加载序列。
3.如权利要求2所述的方法,其特征在于,所述指定节点存储有虚拟根配置对象,所述虚拟根配置对象被实体配置对象依赖,其中,所述实体配置对象存在对应的实体配置文件;
虚拟配置对象不存在对应的实体配置文件,依赖于实体配置对象或其他虚拟配置对象。
4.如权利要求1所述的方法,其特征在于,在得到配置对象的加载序列之后,所述方法还包括:
按照预设时间间隔检测是否有配置文件更新;
如果检测到有配置文件更新,按照预设方式生成更新的配置文件对应的校验掩码;
根据所述校验掩码、所有配置对象的更新掩码以及所述加载序列,确定需要更新的其他配置对象,其中,所述更新掩码是预先按照所述配置对象的序号和依赖关系分别为每个配置对象生成的;
按照所述加载序列对需要更新的配置对象进行更新。
5.如权利要求4所述的方法,其特征在于,根据所述校验掩码、所有配置对象的更新掩码以及所述加载序列,确定需要更新的其他配置对象,包括:
按照所述加载序列,分别对每个配置对象的更新掩码和所述校验掩码进行与运算;
如果运算结果为真,则确定所述配置对象需要更新;
如果运算结果为假,则确定所述配置对象不需要更新。
6.如权利要求1至5中任一项所述的方法,其特征在于,所述配置信息至少包括:配置文件是否为实体配置文件、配置文件的路径、初始化方法、加载方法、析构方法和依赖关系。
7.如权利要求1至5中任一项所述的方法,其特征在于,在按照所述加载序列,依次加载所述配置对象之后,所述方法还包括:
根据通过接口输入的新的配置信息,在所述第一邻接表中增加新的配置对象及其依赖关系;
通过遍历,得到该新的配置对象的加载次序。
8.一种配置加载系统,其特征在于,包括:
接收单元,用于接收通过接口输入的配置信息;
配置对象生成单元,用于根据所述配置信息生成配置对象,为所述配置对象分配唯一的序号并确定配置对象之间的依赖关系;所述配置对象的成员包括属性、方法和存储;
存储单元,用于以邻接表的形式存储所有配置对象及其依赖关系,得到第一邻接表;
遍历单元,用于对所述第一邻接表进行遍历,得到配置对象的加载序列;
加载单元,用于按照所述加载序列,依次加载所述配置对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网宿科技股份有限公司,未经网宿科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710264030.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:水平列表的展示方法及装置
- 下一篇:虚拟对象的控制方法和装置