一种基于git仓库的标准资源扫描与计算方法及系统技术方案

技术编号:33781630 阅读:22 留言:0更新日期:2022-06-12 14:36
本发明专利技术提供了一种基于git仓库的标准资源扫描与计算方法,包括以下步骤:人为配置需要的项目的Git信息,根据实际使用的要求,definition文件中需要定义git的仓库地址,git项目的版本,实际用到的项目文件相对于git项目根路径的位置,读取yaml中数据,提取每个Git项目的信息,读取definition文件中的内容,对所有的线程判断此次操作中线程的执行结果。本发明专利技术加入线程收集及结果检查,来保证每个线程运行接过的正确性,将待处理的git仓库信息以既定的格式声明成可识别的yaml文件;通过多线程并行处理clone操作和其他自定义的扫描与计算操作;当存在失败的线程时对应增加重试逻辑。辑。辑。

【技术实现步骤摘要】
一种基于git仓库的标准资源扫描与计算方法及系统


[0001]本专利技术涉及版本控制与平台集成
,具体为一种基于git仓库的标准资源扫描与计算方法及系统。

技术介绍

[0002]当前基于git仓库的标准资源扫描主要涉及到Git操作、多线程、以及资源定义三方面的
技术实现思路

[0003]其中,Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
[0004]且多线程是指从软件或者硬件上实现多个线程并发执行的技术,多线程能够在同一时间执行多于一个线程,进而提升整体处理性能。
[0005]并且,资源定义这里指的是需要的资源的信息配置,一般为文件的形式配置,需要按一定的格式进行资源定义。
[0006]如此,无法保证每个线程运行接过的正确性,并且无法对报错的线程进行重试,降低了了批处理的准确性。

技术实现思路

[0007]本专利技术的目的在于提供一种基于git仓库的标准资源扫描与计算方法及系统,以解决上述
技术介绍
中提出的问题。
[0008]为实现上述目的,本专利技术提供如下技术方案:一种基于git仓库的标准资源扫描与计算方法及系统,包括以下步骤:
[0009]人为配置需要的项目的Git信息,遵循yaml文件的定义规则,自定义各个项目的git地址、版本、以及其他需要的git信息;
[0010]根据实际使用的要求,definition文件中需要定义git的仓库地址,git项目的版本,实际用到的项目文件相对于git项目根路径的位置;
[0011]读取yaml中数据,按照约定的格式将读取到的数据用合适的数据结构存储,便于后续解析;
[0012]提取每个Git项目的信息,并编写每个项目需要执行的计算、下载等相关处理操作程序;
[0013]读取definition文件中的内容,获取每个项目的git相关信息,借助多线程技术,根据机器性能决定线程上限,每个线程负责克隆一个git项目,每次同时执行多个线程,在进程操作的过程中,需要及时收集克隆失败的线程,并根据实际需要选择对应的重试策略再进行重试;
[0014]对所有的线程判断此次操作中线程的执行结果,如果线程非正常退出,则将该条
失败线程收录到指定的数据结构中;等待所有的判断都结束后,再次重启多线程,对所有的失败线程重新进行如上的clone操作;重试策略中可以定义重试次数,如果那些失败的线程在预定的次数内仍旧无法成功完成clone操作,则抛出错误,程序中断。
[0015]优选的,集成信息定义文件时,按照一个chart对应一个定义资源、一个文件对应一种执行操作的配置原则,在站点的definition文件中定义全部需要下载项目的资源定义,每个chart的信息作为该文件中的一个资源信息块,并且每个项目的信息都按照同样的嵌套结构以及key名进行定义,以便于后续代码处理。
[0016]优选的,代码处理时,根据需求自行添加其他相关的配置,比如根据站点配置增加了每个组件的变量生效优先级定义,符合定义规范即可。
[0017]一种基于git仓库的标准资源扫描与计算系统,包括集成信息定义文件模块、代码处理模块、数据读取模块、数据解析模块、多线程克隆git项目模块以及错误线程重试模块;代码处理模块用于处理集成信息定义文件模块收集的信息,数据读取模块用于读取代码处理模块处理后的数据信息,数据解析模块用于解析数据读取模块读取后的数据信息,多线程克隆git项目模块用于处理解析模块解析后的数据信息,错误线程重试模块用于处理多线程克隆git项目模块处理后的错误信息。
[0018]优选的,所述集成信息定义文件模块用于人为配置需要的项目的Git信息,遵循yaml文件的定义规则,自定义各个项目的git地址、版本、以及其他需要的git信息;
[0019]按照一个chart对应一个定义资源、一个文件对应一种执行操作的配置原则,在站点的definition文件中定义全部需要下载项目的资源定义,每个chart的信息作为该文件中的一个资源信息块,并且每个项目的信息都按照同样的嵌套结构以及key名进行定义,以便于后续代码处理。
[0020]优选的,所述代码处理模块用于根据实际使用的要求,definition文件中需要定义git的仓库地址,git项目的版本,实际用到的项目文件相对于git项目根路径的位置;
[0021]根据需求自行添加其他相关的配置,比如根据站点配置增加了每个组件的变量生效优先级定义,符合定义规范即可。
[0022]优选的,所述数据读取模块用于读取yaml中数据,按照约定的格式将读取到的数据用合适的数据结构存储,便于后续解析。
[0023]优选的,所述数据解析模块用于提取每个Git项目的信息,并编写每个项目需要执行的计算、下载等相关处理操作程序。
[0024]优选的,所述多线程克隆git项目模块用于读取definition文件中的内容,获取每个项目的git相关信息,借助多线程技术,根据机器性能决定线程上限,每个线程负责克隆一个git项目,每次同时执行多个线程,在进程操作的过程中,需要及时收集克隆失败的线程,并根据实际需要选择对应的重试策略再进行重试。
[0025]优选的,所述错误线程重试模块用于对所有的线程判断此次操作中线程的执行结果,如果线程非正常退出,则将该条失败线程收录到指定的数据结构中;等待所有的判断都结束后,再次重启多线程,对所有的失败线程重新进行如上的clone操作;重试策略中可以定义重试次数,如果那些失败的线程在预定的次数内仍旧无法成功完成clone操作,则抛出错误,程序中断。
[0026]与现有技术相比,本专利技术的有益效果是:
[0027]本专利技术提出的基于git仓库的标准资源扫描与计算方法及系统利用多线程技术,提供了一种快速的批处理方法;加入线程收集及结果检查,来保证每个线程运行接过的正确性,将待处理的git仓库信息以既定的格式声明成可识别的yaml文件;通过多线程并行处理clone操作和其他自定义的扫描与计算操作;当存在失败的线程时对应增加重试逻辑。
附图说明
[0028]图1为本专利技术结构系统框图。
具体实施方式
[0029]为了使本专利技术的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本专利技术实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本专利技术一部分实施例,而不是全部的实施例,仅仅用以解释本专利技术实施例,并不用于限定本专利技术实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0030]在本专利技术的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于git仓库的标准资源扫描与计算方法,其特征在于,包括以下步骤:人为配置需要的项目的Git信息,遵循yaml文件的定义规则,自定义各个项目的git地址、版本、以及其他需要的git信息;根据实际使用的要求,definition文件中需要定义git的仓库地址,git项目的版本,实际用到的项目文件相对于git项目根路径的位置;读取yaml中数据,按照约定的格式将读取到的数据用合适的数据结构存储,便于后续解析;提取每个Git项目的信息,并编写每个项目需要执行的计算、下载等相关处理操作程序;读取definition文件中的内容,获取每个项目的git相关信息,借助多线程技术,根据机器性能决定线程上限,每个线程负责克隆一个git项目,每次同时执行多个线程,在进程操作的过程中,需要及时收集克隆失败的线程,并根据实际需要选择对应的重试策略再进行重试;对所有的线程判断此次操作中线程的执行结果,如果线程非正常退出,则将该条失败线程收录到指定的数据结构中;等待所有的判断都结束后,再次重启多线程,对所有的失败线程重新进行如上的clone操作;重试策略中可以定义重试次数,如果那些失败的线程在预定的次数内仍旧无法成功完成clone操作,则抛出错误,程序中断。2.根据权利要求1所述的一种基于git仓库的标准资源扫描与计算方法,其特征在于:集成信息定义文件时,按照一个chart对应一个定义资源、一个文件对应一种执行操作的配置原则,在站点的definition文件中定义全部需要下载项目的资源定义,每个chart的信息作为该文件中的一个资源信息块,并且每个项目的信息都按照同样的嵌套结构以及key名进行定义,以便于后续代码处理。3.根据权利要求2所述的一种基于git仓库的标准资源扫描与计算方法,其特征在于:代码处理时,根据需求自行添加其他相关的配置,比如根据站点配置增加了每个组件的变量生效优先级定义,符合定义规范即可。4.一种基于git仓库的标准资源扫描与计算系统,其特征在于:包括集成信息定义文件模块、代码处理模块、数据读取模块、数据解析模块、多线程克隆git项目模块以及错误线程重试模块;代码处理模块用于处理集成信息定义文件模块收集的信息,数据读取模块用于读取代码处理模块处理后的数据信息,数据解析模块用于解析数据读取模块读取后的数据信息,多线程克隆git项目模块用于处理解析模块解析后的数据信息,错误线程重试模块用于处理多线程克隆...

【专利技术属性】
技术研发人员:张政唐晓东江燕
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1