全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210717111.9 (22)申请日 2022.06.23 (71)申请人 中国民航信息网络股份有限公司 地址 100085 北京市顺 义区后沙峪镇裕民 大街7号 (72)发明人 陈伟 刘佳 吴畔卫 庞坤福  陈凯  (74)专利代理 机构 北京集佳知识产权代理有限 公司 11227 专利代理师 侯珊 (51)Int.Cl. G06F 9/445(2018.01) G06F 8/41(2018.01) (54)发明名称 基于Golang的项目部署方法、 系统及存储介 质 (57)摘要 本申请提供一种基于Golang的项目部署方 法、 系统及存储介质, 通过针对该目标项目灵活 定义的至少一个部署任务各自的部署流程信息, 获得包含该部署流程信息的配置文件后, 通过调 用功能封装模组中的脚本引擎模块, 创建针对目 标项目的配置文件的脚本引擎, 通过该脚本引擎 封装的注册模块, 对所调取的功能封装模组的 Golang代码转换为lua扩展后再注册 到lua实例, 以使配置文件能够通过lua函数调用对应的 Golang函数, 按照部署流程信息执行对应的部署 任务, 将目标项目部署到目标服务器运行, 减少 跨平台开发的成本, 且避免了人工编写操作命令 产生的各种误操作, 所导致的严重后果, 降低了 人力和时间成本, 提高了投产效率和可靠性。 权利要求书2页 说明书17页 附图5页 CN 115185599 A 2022.10.14 CN 115185599 A 1.一种基于Go lang的项目部署方法, 其特 征在于, 所述方法包括: 响应针对目标项目的部署请求, 获得所述目标项目的配置文件; 所述配置文件包括针 对所述目标项目定义的至少一个部署任务各自的部署流 程信息; 调用功能封装模组中的脚本引擎模块, 创建针对所述配置文件的脚本引擎; 所述功能 封装模组是基于项目部署流程的不同内容构建的, 且不同功能封装模组所封装的功能实现 方法不同; 通过所述脚本引擎封装的注册模块, 将所调取的功能封装模组的Golang代码转换为 lua扩展代码后注册到lua实例, 以使所述配置文件能够通过lua函数调用对应的Golang函 数; 按照所述部署流程信息, 执行对应的所述部署任务, 将所述目标项目部署到目标服务 器运行; 销毁所述脚本引擎。 2.根据权利要求1所述的方法, 其特征在于, 所述按照所述部署流程信息, 执行对应的 所述部署任务, 包括: 以命令行 方式获得第一任务标识; 通过所述脚本引擎, 从所述部署流 程信息中, 获得 所述第一任务标识对应的配置项; 按照所获得的所述配置项, 执 行具有所述第一任务标识的所述部署任务。 3.根据权利要求2所述的方法, 其特征在于, 所述按照所述部署流程信息, 执行对应的 所述部署任务, 还 包括: 以命令行 方式未获得 所述第一任务标识; 按照所述部署流 程信息, 执 行所述配置文件 包含的所有部署任务。 4.根据权利要求2所述的方法, 其特 征在于, 所述方法还 包括: 采用对应关系表 的方式, 对 同一任务标识 的部署任务的各配置项进行存储, 以使所述 各配置项能够按照所述对应关系表顺次执 行; 所述获得 所述第一任务标识对应的配置项, 包括: 查询所述对应关系表, 确定所述第一任务标识对应的各配置项。 5.根据权利要求1 ‑4任一项所述的方法, 其特征在于, 在所述执行对应的所述部署任务 过程中, 所述方法还 包括: 调取预定义的日志函数; 执行所述日志函数, 记录所述部署任务的执 行过程, 得到对应的日志数据; 利用所述日志数据, 生成预设格式的任务执 行报告。 6.根据权利要求1 ‑4任一项所述的方法, 其特 征在于, 所述方法还 包括: 响应命令行接口感应到的部署命令, 确定目标项目的项目标识; 加载与所述项目标识关联的依赖项, 将所述依赖项链接 至所述目标项目; 依据所加载的所述依赖项, 构建用于将所述目标项目部署至目标服务器的功能封装模 块。 7.一种基于Golang的项目部署系 统, 其特征在于, 所述系 统包括: 预置模组、 多个功能 封装模组、 Golang开源库以及项目部署控制器, 其中: 所述预置模组包括命令行接口和配置脚本模块, 所述配置脚本模块用于配置执行所述权 利 要 求 书 1/2 页 2 CN 115185599 A 2命令行接口感应的命令的参数, 获得目标项目的配置文件; 所述配置文件包括针对所述 目 标项目定义的至少一个部署任务各自的部署流 程信息; 所述多个功能封装模组包括脚本引擎模块、 文件传输模块、 go ‑lua代码转换模块, 其 中: 所述脚本引擎模块, 用于创建针对所述配置文件的脚本引擎; 所述文件传输模块, 用于实现服 务器与客户端之间的数据传输; go‑lua代码转换模块, 用于将所述功能封装模 组的Golang代码转换为lua扩展代码, 以 使得所述脚本引擎封装的注 册模块, 能够将转换 得到的lua扩展代码注 册到lua实例; 所述项目部署控制器, 用于实现如权利要求1 ‑6任一项所述的基于Golang的项目部署 方法。 8.根据权利要求7所述的系统, 其特征在于, 所述多个功能封装模组还包括: 凭证存储 模块和/或日志封装 模块; 所述凭证存 储模块, 用于对各服 务器自身的认证凭证进行加密存 储; 所述日志封装模块, 用于执行预定义的日志函数, 记录部署任务的执行过程, 利用得到 对应的日志数据, 生成预设格式的任务执 行报告。 9.根据权利要求7或8所述的系统, 其特 征在于, 所述系统还 包括: 位于所述基于Gol ang的项目部署系统底层的Golang代码执行器, 用于能够接入不同应 用平台, 将目标项目部署到任一所述应用平台上的目标服 务器运行。 10.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 所述计算机程序 被处理器加载 执行, 实现如权利要求1 ‑6任一项所述的基于Go lang的项目部署方法。权 利 要 求 书 2/2 页 3 CN 115185599 A 3

.PDF文档 专利 基于Golang的项目部署方法、系统及存储介质

文档预览
中文文档 25 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共25页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 基于Golang的项目部署方法、系统及存储介质 第 1 页 专利 基于Golang的项目部署方法、系统及存储介质 第 2 页 专利 基于Golang的项目部署方法、系统及存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:03:48上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。