[发明专利]一种基于Docker的分布式编译打包系统及方法在审
申请号: | 202210537662.7 | 申请日: | 2022-05-18 |
公开(公告)号: | CN114860406A | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 王三明;王聪明;王寅能;吴权要 | 申请(专利权)人: | 南京安元科技有限公司;启业云大数据(南京)有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 南京新众合专利代理事务所(普通合伙) 32534 | 代理人: | 王子瑜 |
地址: | 210000 江苏省南京市江北新*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 docker 分布式 编译 打包 系统 方法 | ||
1.一种基于Docker的分布式编译打包系统,其特征在于:包括一个以上的节点和调度中心,所述调度中心与节点连接,所述调度中心包括流水线与构建时间关系建立模块、最小排队等待时间的节点计算模块,所述节点包括下一次任务需要排队等待时间计算模块,其中:
所述流水线与构建时间关系建立模块根据接收的流水线任务,计算每条流水线平均构建时间,建立流水线与构建时间关系;
所述下一次任务需要排队等待时间计算模块用于根据流水线与构建时间关系独立计算所在节点下一次任务需要排队等待时间;
所述节点发送下一次任务排队等待时间到调度中心;
所述最小排队等待时间的节点计算模块用于通过节点等待时间计算出最小排队等待时间的节点;
所述调度中心保存中每个节点排队等待时间;调度中心调度最小等待时间的节点去执行流水线构建任务。
2.根据权利要求1所述基于Docker的分布式编译打包系统,其特征在于:所述下一次任务需要排队等待时间计算模块设置排队数量阈值,判断当前排队数量是否高于排队数量阈值,若没高于,就进行排队;若高于,对队列中的每一个节点计算需要排队的时间;判断任务序号和当前节点总共排队时间,若任务序号不是第一个,且当前节点总共排队时间等于流水线时间,将当前节点加入流水线;若任务序号是第一个,或者当前节点总共排队时间小于流水线时间,就将当前节点作为流水线的首个节点;将所有节点流水线工作时间抵消,排队等待时间等于整个流水线工作完成时间;判断流水线的排队是否排满,若排队没排满,则返回整个流水线工作完成时间作为排队等待时间;若排队排满,把流水线最后一个节点赋予给当前节点,计算空位数量;判断空位数量和流水线中的节点哪个更多,如果空位数量大于流水线中的节点数量,则返回步骤22;如果空位数量不大于新的流水线中的节点数量,就递归计算后面的排队时间在加上当前需要排队的时间作为排队等待时间。
3.根据权利要求2所述基于Docker的分布式编译打包系统,其特征在于:所述最小排队等待时间的节点计算模块获取所有节点;获取当前内存中运行的所有节点;遍历所有节点选择最少等待时间的节点;如果当前的节点是最少排队等待时间的节点,且候选节点为空,则将当前的节点作为候选节点;如果当前的节点是最少排队等待时间的节点,且候选节点不为空,判断当前节点和候选节点哪个的排队等待时间更短,如果当前节点排队等待时间比候选节点的排队等待时间短,则将当前节点作为候选节点。
4.一种基于Docker的分布式编译打包系统的打包方法,其特征在于,包括以下步骤:
步骤1,计算每条流水线平均构建时间,建立流水线与构建时间关系;
步骤2,每个节点根据流水线与构建时间关系独立计算下一次任务需要排队等待时间;
步骤3,每个节点发送下一次任务排队等待时间到调度中心;
步骤4,调度中心保存步骤3中每个节点排队等待时间;
步骤5,调度中心通过节点等待时间计算出最小排队等待时间的节点;
步骤6,调度中心调度最小等待时间的节点去执行流水线构建任务。
5.根据权利要求4所述打包方法,其特征在于:调度中心分配被计算出的节点去执行流水线构建任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京安元科技有限公司;启业云大数据(南京)有限公司,未经南京安元科技有限公司;启业云大数据(南京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210537662.7/1.html,转载请声明来源钻瓜专利网。