CN113553187A - devops并发构建方法、装置及计算设备 - Google Patents

devops并发构建方法、装置及计算设备 Download PDF

Info

Publication number
CN113553187A
CN113553187A CN202110877931.XA CN202110877931A CN113553187A CN 113553187 A CN113553187 A CN 113553187A CN 202110877931 A CN202110877931 A CN 202110877931A CN 113553187 A CN113553187 A CN 113553187A
Authority
CN
China
Prior art keywords
task
tasks
weight
user
grouping
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.)
Pending
Application number
CN202110877931.XA
Other languages
English (en)
Inventor
许光华
袁二根
陈闯
仲潇
高健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
MIGU Culture Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
MIGU Culture Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, MIGU Culture Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110877931.XA priority Critical patent/CN113553187A/zh
Publication of CN113553187A publication Critical patent/CN113553187A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Abstract

本发明实施例涉及计算机技术领域,公开了一种devops并发构建方法、装置及计算设备,该方法包括:采集待构建的多个任务的任务信息和用户情绪信息;根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;对多个所述任务依据分组结果构建工作流。通过上述方式,本发明实施例能够通过分级分组构建工作流的方式,提升了资源利用率,解决了并发耦合出错代码合入会导致devops瘫痪的问题。

Description

devops并发构建方法、装置及计算设备
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种devops并发构建方法、装置及计算设备。
背景技术
devops构建是指程序员提交代码到github后,触发jenkin进行代码编译,静态检查,圈复杂度检查,重复度检查,以及UT和FT的过程。当存在多个程序员同时或者上一提交构建过程未结束时,就会存在并发。
现有技术方案通常是采用工作流的方式,只要devops资源允许,每个程序员提交代码时,就会对该程序员提交的代码进行构建,比如当A程序员和B程序员分别同时提交代码时,触发工作流1和工作流2分别对两者提交的代码进行构建,相互之间完全独立。当devops资源受限时,按提交代码的先后顺序排队执行。如果程序员A和B修改了有耦合关系的代码,单独构建A和B提交的代码都能通过。当构建成功代码合入github后,但由于相互代码之间存在耦合,则可能会出现编译错误,也可能是单元测试(UT)或者功能测试(FT)不通过,从而导致库里的基础代码存在问题,后续构建将会出现阻塞,导致其他人代码无法合入,直到管理员人工介入修正代码缺陷。
另外,当devops资源池资源受限时,能并发启动的工作流个数是一定的,随着并发量增多,会侵占太多的devops资源池资源,导致大量构建排队,从而导致其他项目构建任务被搁置,影响其他项目日常进展,出现资源利用率低的情况。
发明内容
鉴于上述问题,本发明实施例提供了一种devops并发构建方法、装置及计算设备,克服了上述问题或者至少部分地解决了上述问题。
根据本发明实施例的一个方面,提供了一种devops并发构建方法,所述方法包括:采集待构建的多个任务的任务信息和用户情绪信息;根据所述任务信息和所述用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;对多个所述任务依据分组结果构建工作流。
在一种可选的方式中,所述采集待构建的多个任务的任务信息和用户情绪信息,包括:根据每个任务对应的任务燃尽图获取所述任务信息,其中所述任务信息包括任务优先级、任务偏离度以及任务里程碑,所述任务偏离度为所述任务燃尽图中的任务进度,所述任务里程碑为距离任务计划结束的剩余时间;根据每个任务对应的用户情绪卡获取所述用户情绪信息。
在一种可选的方式中,所述根据所述任务信息和所述用户情绪信息分别计算每个任务的任务权重和用户等级权重,包括:根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重;根据所述用户情绪信息以及提交代码行数应用用户画像算法计算所述用户等级权重。
在一种可选的方式中,所述根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重,包括:通过对所述神经网络模型进行训练获取所述神经网络模型对应的第一关系式中的偏差,以及所述任务优先级、所述任务偏离度和所述任务里程碑分别对应的权重;根据所述偏差以及所述任务优先级、所述任务偏离度和所述任务里程碑分别对应的权重确定所述第一关系式,并根据所述第一关系式计算所述任务权重。
在一种可选的方式中,所述根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组,包括:根据所述待构建任务数和所述预设的最大并发数的大小确定分组情况,其中,所述分组情况包括分组数以及每个分组中包含的任务个数;根据所述构建等级权重从高到低对多个所述任务进行排序,并按照所排顺序将多个所述任务依据所述分组情况依次分组到确定的多个所述分组中。
在一种可选的方式中,所述对多个所述任务依据分组结果构建工作流,包括:对于第一分组,根据分组到所述第一分组中的所述任务构建第一个工作流;对于所述第一分组之外的所述分组,根据分组到任一分组中的所述任务以及分组到所述任一分组之前的所有分组中的所述任务进行增量叠加构建所述任一分组对应的所述工作流。
在一种可选的方式中,所述对多个所述任务依据分组结果构建工作流,还包括:根据所述工作流的构建结果,对所述任务权重和所述用户等级权重进行动态调整。
根据本发明实施例的另一个方面,提供了一种devops并发构建装置,所述装置包括:采集模块,用于采集待构建的多个任务的任务信息和用户情绪信息;计算模块,用于根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;控制模块,用于根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;构建模块,用于对多个所述任务依据分组结果构建工作流。
根据本发明实施例的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述devops并发构建方法的步骤。
根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行上述devops并发构建方法的步骤。
本发明实施例通过采集待构建的多个任务的任务信息和用户情绪信息;根据所述任务信息和所述用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;对多个所述任务依据分组结果构建工作流,能够通过分级分组构建工作流的方式,提升了资源利用率,解决了并发耦合出错代码合入会导致devops瘫痪的问题。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的devops并发构建方的示意图;
图2示出了本发明实施例提供的devops并发构建方法的具体构建示意图;
图3示出了本发明实施例提供的devops并发构建方法的流程示意图;
图4示出了本发明实施例提供的devops并发构建方法的敏捷看板燃尽图情况的示意图;
图5示出了本发明实施例提供的devops并发构建方法的敏捷情绪卡情况示意图;
图6示出了本发明实施例提供的devops并发构建方法的神经网络模型示意图;
图7示出了本发明实施例提供的devops并发构建方法的分组示意图;
图8示出了本发明实施例提供的devops并发构建方法的构建工作流示意图;
图9示出了本发明实施例提供的devops并发构建方法的工作流构建失败示意图;
图10示出了本发明实施例提供的devops并发构建方法的工作流重新构建示意图;
图11示出了本发明实施例提供的devops并发构建装置的结构示意图;
图12示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
在本发明实施例中,多个用户通过github提交代码触发工作流构建,其中一个用户提交一个代码视为一个任务。如图1所示,根据敏捷看板/敏捷情绪卡采集关键数据,根据采集的关键数据进行权重计算,进而根据计算的权重对多个任务进行分组,根据分组结果、用户待构建数以及devops资源池中最大并发数对多个任务进行分组,并通过jenkin根据分组情况构建工作流,触发jenkin在devops资源池中对工作流进行代码编译,静态检查,覆盖率检查,重复度检查,以及UT和FT的过程。若工作流构建成功,代码合入Git仓库,即github中。工作流的具体构建如图2所示,根据敏捷看板采集任务优先级、任务偏离度以及任务里程碑,并经过神经网络模型后得到任务权重;根据敏捷情绪卡采集用户情绪信息,包括正向因素和负向因素,并应用用户图像算法获取用户等级权重。进一步根据任务权重和用户等级权重计算构建等级权重,然后根据构建等级权重、用户待构建数以及devops资源池中最大并发数对多个任务进行分组,通过jenkin根据分组结果构建工作流,根据构建结果调整构建等级权重,构建成功代码合入Git仓库。其中,Git仓库设置在github中。
图3示出了本发明实施例提供的devops并发构建方法的流程示意图。该devops并发构建方法应用于服务器端,如图3所示,devops并发构建方法包括:
步骤S11:采集待构建的多个任务的任务信息和用户情绪信息。
在本发明实施例中,可选地,在步骤S11之前,接收多个用户通过github分别提交的多个代码,触发工作流的构建,同时确定待构建任务数,其中一个用户对应提交的一个代码对应为待构建的一个任务。
以下以一个完整的构建场景为例详细介绍,假设当前构建工作流受资源限制设置最大并发数为3,有4个程序员A、B、C和D通过github提交代码待触发构建。
在步骤S11中,可选地,根据每个任务对应的任务燃尽图获取任务信息,其中所述任务信息包括任务优先级、任务偏离度以及任务里程碑,所述任务偏离度为所述任务燃尽图中的任务进度,所述任务里程碑为距离任务计划结束的剩余时间;根据每个任务对应的用户情绪卡获取所述用户情绪信息。图4为通过敏捷看板得到的任务燃尽图,其中,任务燃尽图中竖线表示当前时间,对于开发任务1,当前开发任务优先级中进度符合预期;对于开发任务2,当前开发任务优先级高进度超前;对于开发任务3,当前开发任务优先级低进度滞后;对于开发任务4,当前开发任务优先级低进度符合超前。优先级高进度比预期滞后且快到期的任务优先执行。图5为敏捷情绪卡,其中可以看出程序员A今天心情极差,程序员B今天比较开心,程序员C今天情绪有点低落,程序员D今天心情非常好。
步骤S12:根据所述任务信息和所述用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重。
在本发明实施例中,可选地,根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重。通过对所述神经网络模型进行训练获取所述神经网络模型对应的第一关系式中的偏差,以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重;根据所述偏差以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重确定所述第一关系式,并根据所述第一关系式计算所述燃尽图权重。
如图6所示,在该神经网络模型中,输入总共经历了3步数学运算,先将三个输入(任务优先级x1、任务偏离度x2、任务里程碑x3)分别乘以权重(u1、u2、u3):
x1→x1×u1,
x2→x2×u2,
x3→x3×u3;
把三个结果相加,再加上一个偏置b:
(x1×u1)+(x2×u2)+(x3×u3)+b;
最后将它们经过激活函数处理得到第一关系式的输出(output):
x=f(x1×u1+x2×u2+x3×u3+b)。
采用随机梯度下降优化算法:用随机值初始化权重和偏差;把输入传入神经网络模型,得到输出值;计算预测值和真实值之间的误差;对每一个产生误差的神经元,调整相应的(权重)值以减小误差;重复迭代,直至得到神经网络模型权重的最佳值。
设定任务优先级(0~5),任务偏离度(与预期值相差的故事点数)(-150~150),任务里程碑(15~-15)任务收集样本数据如下:
f(5,-150,-15)=100,f(0,150,15)=1,f(5,0,0)=60,f(3,-80,0)=80...
利用matlab对上述样本数据进行训练,最终获得u1、u2、u3、b。
代码提交后,结合实际任务优先级,任务偏离度,任务里程碑使用第一关系式f(x1×u1+x2×u2+x3×u3+b)获取当前任务的任务权重。当前任务1,任务2,任务3,任务4的任务权重经神经网络模型计算出来的结果分别为40,30,50,60。本发明实施例基于任务信息对构建过程进行分级,保证高优先级且滞后的任务优先构建,优先生成版本,供后续开发测试使用;通过对任务信息建立神经网络模型,控制输出任务权重,以达到构建与任务紧急程度关联,提高重要紧急任务优先执行。
在本发明实施例中,可选地,根据所述用户情绪信息以及提交代码行数应用用户画像算法计算所述用户等级权重。首先分别根据所述用户情绪信息和提交代码行数确定构建成功概率和提交代码行数占比,进而根据构建成功概率和提交代码行数占比计算用户等级权重。应用第二关系式x=f(1+f1(a))*(1-f2(b))计算用户等级权重,其中,f(x)=x*50,f1(a)为用户情绪信息与构建成功概率相关性函数,f2(b)为用户提交代码行数与所有人提交代码行数占比。用户情绪信息a为正向因素,用户情绪好的时候工作效率高且构建成功率f1(a)越高。提交代码行数b为负向因素,提交代码行数越多构建成功的概率f2(b)越低。
例如,通过对历史构建情况进行大数据分析,程序员A心情极差的时候,工作效率低,构建成功概率为20%,程序员B心情比较开心的时候,工作效率高,构建成功概率为100%,程序C情绪有点低落的时候,工作效率会受影响,构建成功概率为80%,程序员D心情非常好的时候,工作效率高,构建成功概率为100%。如此,程序员A的用户情绪信息对应的构建成功概率f1(a)为20%,当前提交代码行数占比f2(b)为30%,根据第二关系式得到程序员A对应的任务A的用户等级权重为(1+0.2)*(1-0.3)*50=42。程序员B的用户情绪信息对应的构建成功概率f1(a)为100%,当前提交代码行数占比f2(b)为40%,根据第二关系式得到程序员B对应的任务B的用户等级权重为(1+1)*(1-0.4)*50=60。程序员C的用户情绪信息对应的构建成功概率f1(a)为80%,当前提交代码行数占比f2(b)为20%,根据第二关系式得到程序员C对应的任务C的用户等级权重为(1+0.8)*(1-0.2)*50=72。程序员D的用户情绪信息对应的构建成功概率f1(a)为100%,当前提交代码行数占比f2(b)为10%,根据第二关系式得到程序员D对应的任务D的用户等级权重为(1+1)*(1-0.1)*50=90。
本发明实施例通过对用户情绪信息以及提交代码行数进行用户画像,以达到最大化提升版本构建效率,减少等待时长,代码提交质量越高等待时间越少。
得到所述任务权重和所述用户等级权重之后,可选地,对所述所述任务权重和所述用户等级权重进行加权平均获取任务的构建等级权重。可以应用第三关系式f(z)=z/2计算任务的构建等级权重,z=f(y1×w1+y2×w2),其中为y1为任务权重,w1为任务权重的加权权值,y2为用户等级权重,w2为用户等级权重的加权权值。w1和w2初始值都为1,如此可得到程序员A的构建等级权重为(40+42)/2=41,程序员B的构建等级权重为(30+60)/2=45,依次类推程序员C的构建等级权重为61,程序员D的构建等级权重为75。
步骤S13:根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组。
在本发明实施例中,可选地,根据所述待构建任务数和所述预设的最大并发数的大小确定分组情况,其中,所述分组情况包括分组数以及每个分组中包含的任务个数;根据所述构建等级权重从高到低对多个所述任务进行排序,并按照所排顺序将多个所述任务依据所述分组情况依次分组到确定的多个所述分组中。需要说明是,需要确保第一组仅为1个代码提交,以便后续构建失败能将失败的代码提交识别出来。可以根据构建最大并发数n和待构建任务数m,按如图7所示的阶梯算法确定分多少组,每组包含多少次代码提交,其中代码提交次数即为前述的分组中包含的任务个数。首先比较最大并发数n和待构建任务数m。如果m<n,则将多个任务分为m组,每组包含1次代码提交。如果n<m≤2n-1,则将多个任务分为n组,第1到2n-m组包含1次代码提交;2n-m+1到n组包含2次代码提交。如果2n-1<m≤3n-3,则将多个任务分为n组,第1组包含1次代码提交;第2组到3n-m-2组包含2次代码提交;3n-m-1到n组包含3次代码提交。以此类推,确定所有任务的分组情况。然后将所有任务按照构建等级权重从高到低进行排序,依据所排顺序依次将相应个数的任务分组到对应的每个分组中。
例如,当前支持最大并发数n为3,待构建任务数m为4,n<m<2n-1,按图7中的逻辑将所有任务分为三组,第一组到第2n-m组包含1个代码提交,即第一组到第二组包含1个代码提交,第2n-m+1组到n组包含2个代码提交,即第三组包含2个代码提交。对于任务A、B、C、D,按步骤12中得到的各任务的构建等级权重值从高到低排序为D-C-B-A,从第一组到第三组逐级分配。划分分组后,D为第一组,C为第二组,A和B为第三组。
步骤S14:对多个所述任务依据分组结果构建工作流。
在本发明实施例中,可选地,对于第一分组,根据分组到所述第一个分组中的所述任务构建第一工作流;对于所述第一分组之外的所述分组,根据分组到任一分组中的所述任务以及分组到所述任一分组之前的所有分组中的所述任务进行增量叠加构建所述任一分组对应的所述工作流。例如,如图8所示,根据步骤S13中的分组结果,工作流1构建第一组,用于程序员D提交代码。工作流2构建第一组+第二组,用于程序员D、C提交代码。工作流3构建第一组+第二组+第三组,用于程序员D、C、B、A提交代码。本发明实施例通过分级分组增量构建的方式,提升了资源利用率和并发效率,解决了并发耦合出错代码合入会导致devops瘫痪的问题,减少出错。
假设工作流1构建成功,则合入程序员D提交的代码,即将程序员D提交的代码合入Git仓库。反之如图9所示,如果程序员D代码存在缺陷导致构建工作流1失败,则自动停止构建工作流2和3,对C、B和A按上述分组方式进行重新触发构建。如图10所示,工作流1构建第一组,用于程序员C提交代码,工作流2构建第一组+第二组,用于程序员C、B提交代码。工作流3构建第一组+第二组+第三组,用于程序员C、B、A提交代码。以此类推,直到A、B、C、D的代码都构建完成,失败的发送失败打回通知,成功的代码合入github并发送成功通知。
在本发明实施例中,工作流构建结束后,还可以根据所述工作流的构建结果,对所述任务权重w1和所述用户等级权重w2进行动态调整,达到自学习的目的。可选地,如果当前构建的工作流无失败,则权重因子无需调整。如果当前构建的工作流存在失败,且失败的分组为最后,则权重因子无需调整。如果当前构建的工作流存在失败,失败的分组非最后,且当前失败提交分组靠前的原因是任务权重主导,则调低任务权重因子,反之亦然。如果当前构建的工作流存在失败,失败的分组非最后,且当前失败提交分组靠前的原因是用户等级权重主导,调低用户等级权重因子,反之亦然。本发明实施例通过构建失败情况反馈分析,对分组排序算法进行自学习优化,无需人工介入,能够减少人工维护成本,有效提高代码构建效率。
本发明实施例基于敏捷看板的任务信息以及敏捷情绪卡的用户情绪信息,自学习进行分级分组增量的devops构建,通过任务信息以及情绪信息找到最适合的方式进行分组,将最容易失败的提交和紧急度不高的提交关联到一组,并叠加到最后一个工作流进行构建。因为在最后一个工作流构建失败时,不会影响程序员D,C的代码正常构建,以及及时合入。而如果最容易产生失败的程序员A放在第一个工作流进行构建,构建失败后会导致程序员D,B,C的代码重新构建,极限情况,容易导致原来的构建周期拉长很多倍。基于用户情绪信息以及提交代码行数进行用户画像,如果用户最有可能发生构建错误,则叠加最后一级从而降低构建次数提高构建效率,降低平均构建时间,特别适用于devops系统资源不足,且项目人数较多,提交频次较高的场景。
本发明实施例通过采集待构建的多个任务的任务信息和用户情绪信息;根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;对多个所述任务依据分组结果构建工作流,能够通过分级分组构建工作流的方式,提升了资源利用率,解决了并发耦合出错代码合入会导致devops瘫痪的问题。
图11示出了本发明实施例的devops并发构建装置的结构示意图。如图11所示,该devops并发构建装置包括:采集模块101、计算模块102、控制模块103以及构建模块104。其中:
采集模块101用于采集待构建的多个任务的任务信息和用户情绪信息;计算模块102用于根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;控制模块103用于根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;构建模块104用于对多个所述任务依据分组结果构建工作流。
在一种可选的方式中,采集模块101用于:根据每个任务对应的任务燃尽图获取所述任务信息,其中所述任务信息包括任务优先级、任务偏离度以及任务里程碑,所述任务偏离度为所述任务燃尽图中的任务进度,所述任务里程碑为距离任务计划结束的剩余时间;根据每个任务对应的用户情绪卡获取所述用户情绪信息。
在一种可选的方式中,计算模块102用于:根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重;根据所述用户情绪信息以及提交代码行数应用用户画像算法计算所述用户等级权重。
在一种可选的方式中,计算模块102用于:通过对所述神经网络模型进行训练获取所述神经网络模型对应的第一关系式中的偏差,以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重;根据所述偏差以及所述任务优先级、所述燃尽图偏离度以及所述任务里程碑分别对应的权重确定所述第一关系式,并根据所述第一关系式计算所述任务权重。
在一种可选的方式中,控制模块103用于:根据所述待构建任务数和所述预设的最大并发数的大小确定分组情况,其中,所述分组情况包括分组数以及每个分组中包含的任务个数;根据所述构建等级权重从高到低对多个所述任务进行排序,并按照所排顺序将多个所述任务依据所述分组情况依次分组到确定的多个所述分组中。
在一种可选的方式中,构建模块104用于:对于第一分组,根据分组到所述第一分组中的所述任务构建第一个工作流;对于所述第一分组之外的所述分组,根据分组到任一分组中的所述任务以及分组到所述任一分组之前的所有分组中的所述任务进行增量叠加构建所述任一分组对应的所述工作流。
在一种可选的方式中,构建模块104用于:根据所述工作流的构建结果,对所述任务权重和所述用户等级权重进行动态调整。
本发明实施例通过采集待构建的多个任务的任务信息和用户情绪信息;根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;对多个所述任务依据分组结果构建工作流,能够通过分级分组构建工作流的方式,提升了资源利用率,解决了并发耦合出错代码合入会导致devops瘫痪的问题。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的devops并发构建方法。
可执行指令具体可以用于使得处理器执行以下操作:
采集待构建的多个任务的任务信息和用户情绪信息;
根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;
根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;
对多个所述任务依据分组结果构建工作流。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据每个任务对应的任务燃尽图获取所述任务信息,其中所述任务信息包括任务优先级、任务偏离度以及任务里程碑,所述任务偏离度为所述任务燃尽图中的任务进度,所述任务里程碑为距离任务计划结束的剩余时间;
根据每个任务对应的用户情绪卡获取所述用户情绪信息。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重;
根据所述用户情绪信息以及提交代码行数应用用户画像算法计算所述用户等级权重。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
通过对所述神经网络模型进行训练获取所述神经网络模型对应的第一关系式中的偏差,以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重;
根据所述偏差以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重确定所述第一关系式,并根据所述第一关系式计算所述任务权重。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据所述待构建任务数和所述预设的最大并发数的大小确定分组情况,其中,所述分组情况包括分组数以及每个分组中包含的任务个数;
根据所述构建等级权重从高到低对多个所述任务进行排序,并按照所排顺序将多个所述任务依据所述分组情况依次分组到确定的多个所述分组中。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
对于第一分组,根据分组到所述第一分组中的所述任务构建第一个工作流;
对于所述第一分组之外的所述分组,根据分组到任一分组中的所述任务以及分组到所述任一分组之前的所有分组中的所述任务进行增量叠加构建所述任一分组对应的所述工作流。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据所述工作流的构建结果,对所述任务权重和所述用户等级权重进行动态调整。
本发明实施例通过采集待构建的多个任务的任务信息和用户情绪信息;根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;对多个所述任务依据分组结果构建工作流,能够通过分级分组构建工作流的方式,提升了资源利用率,解决了并发耦合出错代码合入会导致devops瘫痪的问题。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任意方法实施例中的devops并发构建方法。
可执行指令具体可以用于使得处理器执行以下操作:
采集待构建的多个任务的任务信息和用户情绪信息;
根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;
根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;
对多个所述任务依据分组结果构建工作流。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据每个任务对应的任务燃尽图获取所述任务信息,其中所述任务信息包括任务优先级、任务偏离度以及任务里程碑,所述任务偏离度为所述任务燃尽图中的任务进度,所述任务里程碑为距离任务计划结束的剩余时间;
根据每个任务对应的用户情绪卡获取所述用户情绪信息。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重;
根据所述用户情绪信息以及提交代码行数应用用户画像算法计算所述用户等级权重。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
通过对所述神经网络模型进行训练获取所述神经网络模型对应的第一关系式中的偏差,以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重;
根据所述偏差以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重确定所述第一关系式,并根据所述第一关系式计算所述任务权重。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据所述待构建任务数和所述预设的最大并发数的大小确定分组情况,其中,所述分组情况包括分组数以及每个分组中包含的任务个数;
根据所述构建等级权重从高到低对多个所述任务进行排序,并按照所排顺序将多个所述任务依据所述分组情况依次分组到确定的多个所述分组中。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
对于第一分组,根据分组到所述第一分组中的所述任务构建第一个工作流;
对于所述第一分组之外的所述分组,根据分组到任一分组中的所述任务以及分组到所述任一分组之前的所有分组中的所述任务进行增量叠加构建所述任一分组对应的所述工作流流。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
根据所述工作流的构建结果,对所述任务权重和所述用户等级权重进行动态调整。
本发明实施例通过采集待构建的多个任务的任务信息和用户情绪信息;根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;对多个所述任务依据分组结果构建工作流,能够通过分级分组构建工作流的方式,提升了资源利用率,解决了并发耦合出错代码合入会导致devops瘫痪的问题。
图12示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
如图12所示,该计算设备可以包括:处理器(processor)1202、通信接口(Communications Interface)1204、存储器(memory)1206、以及通信总线1208。
其中:处理器1202、通信接口1204、以及存储器1206通过通信总线1208完成相互间的通信。通信接口1204,用于与其它设备比如客户端或其它服务器等的网元通信。处理器1202,用于执行程序1210,具体可以执行上述devops并发构建方法实施例中的相关步骤。
具体地,程序1210可以包括程序代码,该程序代码包括计算机操作指令。
处理器1202可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或各个集成电路。设备包括的一个或各个处理器,可以是同一类型的处理器,如一个或各个CPU;也可以是不同类型的处理器,如一个或各个CPU以及一个或各个ASIC。
存储器1206,用于存放程序1210。存储器1206可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序1210具体可以用于使得处理器1202执行以下操作:
采集待构建的多个任务的任务信息和用户情绪信息;
根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;
根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;
对多个所述任务依据分组结果构建工作流。
在一种可选的方式中,所述程序1210使所述处理器执行以下操作:
根据每个任务对应的任务燃尽图获取所述任务信息,其中所述任务信息包括任务优先级、任务偏离度以及任务里程碑,所述任务偏离度为所述任务燃尽图中的任务进度,所述任务里程碑为距离任务计划结束的剩余时间;
根据每个任务对应的用户情绪卡获取所述用户情绪信息。
在一种可选的方式中,所述程序1210使所述处理器执行以下操作:
根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重;
根据所述用户情绪信息以及提交代码行数应用用户画像算法计算所述用户等级权重。
在一种可选的方式中,所述程序1210使所述处理器执行以下操作:
通过对所述神经网络模型进行训练获取所述神经网络模型对应的第一关系式中的偏差,以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重;
根据所述偏差以及所述任务优先级、所述任务偏离度以及所述任务里程碑分别对应的权重确定所述第一关系式,并根据所述第一关系式计算所述任务权重。
在一种可选的方式中,所述程序1210使所述处理器执行以下操作:
根据所述待构建任务数和所述预设的最大并发数的大小确定分组情况,其中,所述分组情况包括分组数以及每个分组中包含的任务个数;
根据所述构建等级权重从高到低对多个所述任务进行排序,并按照所排顺序将多个所述任务依据所述分组情况依次分组到确定的多个所述分组中。
在一种可选的方式中,所述程序1210使所述处理器执行以下操作:
对于第一分组,根据分组到所述第一分组中的所述任务构建第一个工作流;
对于所述第一分组之外的所述分组,根据分组到任一分组中的所述任务以及分组到所述任一分组之前的所有分组中的所述任务进行增量叠加构建所述任一分组对应的所述工作流。
在一种可选的方式中,所述程序1210使所述处理器执行以下操作:
根据所述工作流的构建结果,对所述任务权重和所述用户等级权重进行动态调整。
本发明实施例通过采集待构建的多个任务的任务信息和用户情绪信息;根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;对多个所述任务依据分组结果构建工作流,能够通过分级分组增量构建工作流的方式,提升了资源利用率,解决了并发耦合出错代码合入会导致devops瘫痪的问题。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (10)

1.一种devops并发构建方法,其特征在于,所述方法包括:
采集待构建的多个任务的任务信息和用户情绪信息;
根据所述任务信息和所述用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;
根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;
对多个所述任务依据分组结果构建工作流。
2.根据权利要求1所述的方法,其特征在于,所述采集待构建的多个任务的任务信息和用户情绪信息,包括:
根据每个任务对应的任务燃尽图获取所述任务信息,其中所述任务信息包括任务优先级、任务偏离度以及任务里程碑,所述任务偏离度为所述任务燃尽图中的任务进度,所述任务里程碑为距离任务计划结束的剩余时间;
根据每个任务对应的用户情绪卡获取所述用户情绪信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述任务信息和所述用户情绪信息分别计算每个任务的任务权重和用户等级权重,包括:
根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重;
根据所述用户情绪信息以及提交代码行数应用用户画像算法计算所述用户等级权重。
4.根据权利要求3所述的方法,其特征在于,所述根据所述任务优先级、所述任务偏离度以及所述任务里程碑应用神经网络模型计算所述任务权重,包括:
通过对所述神经网络模型进行训练获取所述神经网络模型对应的第一关系式中的偏差,以及所述任务优先级、所述任务偏离度和所述任务里程碑分别对应的权重;
根据所述偏差以及所述任务优先级、所述任务偏离度和所述任务里程碑分别对应的权重确定所述第一关系式,并根据所述第一关系式计算所述任务权重。
5.根据权利要求1所述的方法,其特征在于,所述根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组,包括:
根据所述待构建任务数和所述预设的最大并发数的大小确定分组情况,其中,所述分组情况包括分组数以及每个分组中包含的任务个数;
根据所述构建等级权重从高到低对多个所述任务进行排序,并按照所排顺序将多个所述任务依据所述分组情况依次分组到确定的多个所述分组中。
6.根据权利要求5所述的方法,其特征在于,所述对多个所述任务依据分组结果构建工作流,包括:
对于第一分组,根据分组到所述第一分组中的所述任务构建第一个工作流;
对于所述第一分组之外的所述分组,根据分组到任一分组中的所述任务以及分组到所述任一分组之前的所有分组中的所述任务进行增量叠加构建所述任一分组对应的所述工作流。
7.根据权利要求1所述的方法,其特征在于,所述对多个所述任务依据分组结果构建工作流,还包括:
根据所述工作流的构建结果,对所述任务权重和所述用户等级权重进行动态调整。
8.一种devops并发构建装置,其特征在于,所述装置包括:
采集模块,用于采集待构建的多个任务的任务信息和用户情绪信息;
计算模块,用于根据所述任务信息和用户情绪信息分别计算每个任务的任务权重和用户等级权重,并根据所述任务权重和所述用户等级权重获取每个所述任务的构建等级权重;
控制模块,用于根据待构建任务数、预设的最大并发数以及每个所述任务的所述构建等级权重对多个所述任务进行分组;
构建模块,用于对多个所述任务依据分组结果构建工作流。
9.一种计算设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行根据权利要求1-7任一项所述devops并发构建方法的步骤。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行根据权利要求1-7任一项所述devops并发构建方法的步骤。
CN202110877931.XA 2021-07-30 2021-07-30 devops并发构建方法、装置及计算设备 Pending CN113553187A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110877931.XA CN113553187A (zh) 2021-07-30 2021-07-30 devops并发构建方法、装置及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110877931.XA CN113553187A (zh) 2021-07-30 2021-07-30 devops并发构建方法、装置及计算设备

Publications (1)

Publication Number Publication Date
CN113553187A true CN113553187A (zh) 2021-10-26

Family

ID=78133513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110877931.XA Pending CN113553187A (zh) 2021-07-30 2021-07-30 devops并发构建方法、装置及计算设备

Country Status (1)

Country Link
CN (1) CN113553187A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885881A (zh) * 2014-04-03 2014-06-25 北京航空航天大学 一种基于VxWorks系统多任务机制的高实时并发测试方法
CN104657212A (zh) * 2015-02-13 2015-05-27 北京亚信数据有限公司 一种任务调度的方法及系统
US20180367548A1 (en) * 2017-06-14 2018-12-20 Microsoft Technology Licensing, Llc Detecting malicious lateral movement across a computer network
CN111553592A (zh) * 2020-04-27 2020-08-18 深圳壹账通智能科技有限公司 基于情绪信息的任务分配方法、装置、计算机设备和介质
CN111626616A (zh) * 2020-05-27 2020-09-04 深圳莫比嗨客数据智能科技有限公司 一种众包任务推荐方法
CN112130979A (zh) * 2020-09-29 2020-12-25 展讯通信(上海)有限公司 调度任务及训练神经网络模型的方法、装置、终端和介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885881A (zh) * 2014-04-03 2014-06-25 北京航空航天大学 一种基于VxWorks系统多任务机制的高实时并发测试方法
CN104657212A (zh) * 2015-02-13 2015-05-27 北京亚信数据有限公司 一种任务调度的方法及系统
US20180367548A1 (en) * 2017-06-14 2018-12-20 Microsoft Technology Licensing, Llc Detecting malicious lateral movement across a computer network
CN111553592A (zh) * 2020-04-27 2020-08-18 深圳壹账通智能科技有限公司 基于情绪信息的任务分配方法、装置、计算机设备和介质
CN111626616A (zh) * 2020-05-27 2020-09-04 深圳莫比嗨客数据智能科技有限公司 一种众包任务推荐方法
CN112130979A (zh) * 2020-09-29 2020-12-25 展讯通信(上海)有限公司 调度任务及训练神经网络模型的方法、装置、终端和介质

Similar Documents

Publication Publication Date Title
Ahmad et al. Fuzzy_MoSCoW: A fuzzy based MoSCoW method for the prioritization of software requirements
US11775855B2 (en) Service for managing quantum computing resources
CN109783213B (zh) 一种边缘计算环境下针对可靠性的工作流容错调度方法
WO2015179705A1 (en) Enhanced compliance verification system
US11170137B1 (en) Cloud-based simulation of quantum computing resources
US20090217246A1 (en) Evaluating Software Programming Skills
US11403095B2 (en) Scalable code repository with green master
Ward et al. Colmena: Scalable machine-learning-based steering of ensemble simulations for high performance computing
Szpyrka et al. Proposal of formal verification of selected BPMN models with Alvis modeling language
Han et al. Checkpointing workflows for fail-stop errors
US20170123873A1 (en) Computing hardware health check
EP1331554B1 (en) Method of producing a software product
CN113157379A (zh) 集群节点资源调度方法及装置
US20160239275A1 (en) Generating an integrated service
WO2022041980A1 (en) Concept prediction to create new intents and assign examples automatically in dialog systems
CN117573307A (zh) 云环境下多任务的统筹管理方法及系统
CN113553187A (zh) devops并发构建方法、装置及计算设备
Feather et al. A quantitative risk model for early lifecycle decision making
CN111147541A (zh) 基于参数服务器的节点处理方法、装置、设备及存储介质
US20040073889A1 (en) Method of producing a software product
Guimaraes et al. A framework for adaptive fault-tolerant execution of workflows in the grid: empirical and theoretical analysis
EP4124945A1 (en) System and method for batch and scheduler migration in an application environment migration
Spichkova et al. Managing usability and reliability aspects in cloud computing
Wu et al. A general framework for experimental design, uncertainty quantification and sensitivity analysis of computer simulation models
Souri Formal specification and verification of a data replication approach in distributed systems

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