一种任务组件的智能处理方法、装置、设备和存储介质转让专利

申请号 : CN202110795159.7

文献号 : CN113434264B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙科鲜雨宏冯文亮裴卫民刘中华梁琪

申请人 : 上海浦东发展银行股份有限公司

摘要 :

本发明实施例公开了一种任务组件的智能处理方法、装置、设备和存储介质。其中,根据从候选任务组模板中选择的目标任务组模板构建目标流水线;根据用户对任务组件的操作节点和历史行为构建事务数据库,并确定所述事务数据库中的候选任务组件集;根据候选任务组件集的特征数据从候选任务组件集中选择目标任务组件集,作为候选任务组模板;根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略。本发明实施例通过流水线的定制与动态调节,使得开发流水线可以针对敏捷开发中的变更进行快速的响应。

权利要求 :

1.一种任务组件的智能处理方法,其特征在于,包括:

根据从候选任务组模板中选择的目标任务组模板构建目标流水线;其中,所述候选任务组模板通过如下方式构建:根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件;确定所述事务数据库中的候选任务组件集;确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,作为候选任务组模板;

根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略,包括:在目标流水线中当前任务组件运行失败的情况下,根据当前任务组件的运行历史,当前任务组件的代码变更情况,或当前任务组件与目标流水线中下一任务组件之间的依赖关系,确定是否继续运行下一任务组件。

2.根据权利要求1所述的方法,其特征在于,所述确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,包括:根据所述事务数据库中包括所述候选任务组件集的事务数量作为所述候选任务组件集的支持数;

根据所述候选任务组件集的支持数和所述事务数据库中事务总数确定所述候选任务组件集的支持度,并根据所述候选任务组件集的支持度对所述候选任务组件集进行筛选;

根据经筛选的候选任务组件集中的任务组件,确定候选关联规则,并确定候选关联规则的置信度;

根据所述候选关联规则的置信度,对所述候选关联规则和所述候选关联规则所属的候选任务组件集进行筛选,得到目标任务组件集。

3.根据权利要求2所述的方法,其特征在于,所述根据所述候选任务组件集的支持数和所述事务数据库中事务总数确定所述候选任务组件集的支持度,包括:若所述事务数据库的事务类型为有序事务,则根据候选任务组件集中相邻任务组件在事务中的序列标记,确定所述相邻任务组件的时间间隔;

若所述相邻任务组件的时间间隔小于或等于时间间隔阈值,则将支持度调节值,与所述候选任务组件集的支持数占所述事务数据库中事务总数的比例值之和,作为所述候选任务组件集的支持度;

若所述相邻任务组件的时间间隔大于时间间隔阈值,则将所述候选任务组件集的支持数占所述事务数据库中事务总数的比例值,作为所述候选任务组件集的支持度。

4.根据权利要求1所述的方法,其特征在于,还包括:

将当前任务组件的运行成功率、当前任务组件的平均运行时长、当前任务组件运行失败后下一任务组件运行成功的条件概率,作为所述当前任务组件的运行历史。

5.根据权利要求1所述的方法,其特征在于,还包括:

将当前任务组件的新增代码行数、删除代码行数与更新代码行数之和,作为当前任务组件的代码调整行数;

根据所述代码调整行数和当前任务组件的代码总行数,确定所述当前任务组件的代码变更情况。

6.根据权利要求1所述的方法,其特征在于,还包括:

将有序事务数据库中包括当前任务组件和下一任务组件的至少一个事务,作为辅助事务;

根据当前任务组件与下一任务组件在所述辅助事务中的序列标记,确定当前任务组件与下一任务组件在所述辅助事务中的依赖值;

将当前任务组件与下一任务组件在各辅助事务中的依赖值之和,作为总依赖值;

将总依赖值与辅助事务的事务数量之间的比例值,作为所述当前任务组件与目标流水线中下一任务组件之间的依赖关系。

7.一种任务组件的智能处理装置,其特征在于,包括:

目标流水线构建模块,用于根据从候选任务组模板中选择的目标任务组模板构建目标流水线;其中,所述候选任务组模板通过如下方式构建:根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件;确定所述事务数据库中的候选任务组件集;确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,作为候选任务组模板;

任务执行策略确定模块,用于根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略;

所述任务执行策略确定模块,具体用于:

在目标流水线中当前任务组件运行失败的情况下,根据当前任务组件的运行历史,当前任务组件的代码变更情况,或当前任务组件与目标流水线中下一任务组件之间的依赖关系,确定是否继续运行下一任务组件。

8.一种电子设备,其特征在于,包括存储器、处理器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接;

当所述电子设备运行时,处理器执行所述存储器存储的所述计算机执行指令,以使所述电子设备执行如权利要求1‑6任意一项所述的一种任务组件的智能处理方法。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当计算机执行所述指令时,使得所述计算机执行如权利要求1‑6任意一项所述的一种任务组件的智能处理方法。

说明书 :

一种任务组件的智能处理方法、装置、设备和存储介质

技术领域

[0001] 本发明实施例涉及电子信息技术领域,尤其涉及一种任务组件的智能处理方法、装置、设备和存储介质。

背景技术

[0002] 随着计算机技术和互联网技术的飞速发展,依托互联网而运行的各类行业也得到了很大进步,随着人类社会快节奏的生产生活,社会的需求对互联网产品的开发也提出了更高速、更高效的要求。
[0003] 目前,大多数基于流水线技术的CI/CD(Continuous Integration/Continuous Delivery,持续集成/持续交付)工具,可以完成从开发、测试、部署、发布到运维的整套流水线步骤,进而达到可持续交付的目的。
[0004] 但是,其流水线的构建、编排、运行等多种复杂阶段都需要人工干预,对开发经验有很高依赖性,且容易出现重复操作。在面对持续变化的运行环境时,难以对运行策略进行灵活的调整,导致流水线的集成和部署效率低。

发明内容

[0005] 本发明实施例提供一种任务组件的智能处理方法、装置、设备和存储介质,以实现方便快捷的构建、运行和管理开发流水线。
[0006] 第一方面,本发明实施例提供了一种任务组件的智能处理方法,包括:
[0007] 根据从候选任务组模板中选择的目标任务组模板构建目标流水线;其中,所述候选任务组模板通过如下方式构建:根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件;确定所述事务数据库中的候选任务组件集;确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,作为候选任务组模板;
[0008] 根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略。
[0009] 第二方面,本发明实施例还提供了一种任务组件的智能处理装置,该装置包括:
[0010] 目标流水线构建模块,用于根据从候选任务组模板中选择的目标任务组模板构建目标流水线;其中,所述候选任务组模板通过如下方式构建:根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件;确定所述事务数据库中的候选任务组件集;确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,作为候选任务组模板;
[0011] 任务执行策略确定模块,用于根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略。
[0012] 第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接;
[0013] 当所述电子设备运行时,处理器执行所述存储器存储的所述计算机执行指令,以使所述电子设备执行如本发明任意实施例提供的一种任务组件的智能处理方法。
[0014] 第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当计算机执行所述指令时,使得所述计算机执行如本发明任意实施例提供的一种任务组件的智能处理方法。
[0015] 本发明实施例的技术方案,根据开发流水线中的运行历史、开发过程的变更情况等,通过建立事务数据库来统筹各开发任务组件之间的关系,使得系统可以根据设定的方式对开发过程中的各任务组件进行自动调节,解决了以往流水线开发过程过于依赖人工经验且无法针对过程变化进行动态调整的问题,达到了快速应对开发变化的效果。

附图说明

[0016] 图1是本发明实施例一中的一种任务组件的智能处理方法的流程图;
[0017] 图2是本发明实施例二中的一种构建候选任务组模板的方法流程图;
[0018] 图3是本发明实施例三中的一种任务组件的智能处理方法的流程图;
[0019] 图4是本发明实施例四中的一种任务组件的智能处理装置的结构图;
[0020] 图5是本发明实施例五种的一种电子设备的结构示意图。

具体实施方式

[0021] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0022] 实施例一
[0023] 图1为本发明实施例一提供的一种任务组件的智能处理方法的流程图,本发明实施例可适用于开发流水线中根据开发任务的变更情况灵活改变开发策略的情况,该方法可以由任务组件的智能处理装置来执行,具体包括如下步骤:
[0024] 步骤110、根据从候选任务组模板中选择的目标任务组模板构建目标流水线。
[0025] 候选任务组模板是由符合要求的候选项集和项参数构成的,一个项即一个任务组件。任务组件是指开发过程中需要用到的开发组件,例如Shell组件、C构建和SCP组件等,本发明实施例对此不作限定。项集是多个任务组件组成的一个集合,例如可以是数据库中的行。因此,候选任务组模板是由符合要求的候选任务组件集合和任务组件的参数构成的。任务组件的参数一般是人为设定的,且开发过程中不同的管理规则对应不同的任务组件参数。目标任务组模板即是从候选任务组模板中挑选的待用的任务组模板。流水线即开发流水线,指的是任务组件之间的组合关系,可以为包括不同任务组件的开发流程,目标流水线即待使用的开发流程。
[0026] 因此,用户通过候选项集和设定的项参数来筛选可以使用的任务组模板,从中选择当前工作中需要用到的任务组模板作为基础,用以构建开发流水线。在实际的工作场景中,用户可以通过开发界面对任务组模板进行筛选,点击、拖动或拼接系统中的任务组模板即可完成流水线的编辑和构建。
[0027] 当用户进入编辑流水线界面时,可触发系统监测并记录用户从编辑流水线到保存流水线之间的所有操作节点和历史行为。这些历史记录可以包括但不仅限于:记录点击过的任务组件、配置的任务组件参数、配置的不同任务所定义的对应流水线阶段、编辑任务组件各节点间的路径,任务组件之间是并行的还是串行的。
[0028] 其中,所述候选任务组模板通过如下方式构建:根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件;确定所述事务数据库中的候选任务组件集;确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,作为候选任务组模板。
[0029] 用户编辑一次流水线后被保存的记录称之为一个事务,集合了所有这些记录的数据库即为事务数据库,且每个事务数据库最少含有两个事务,每个事务中最少应由一个任务组件构成。根据系统监测并记录的操作节点和历史行为,建立事务数据库。其中,事务数据库分为两种,即无序事务数据库和有序事务数据库。无序事务数据库中的项集记录的是流水线中存在并行关系的情况,而有序事务数据库中的项集记录的是串行关系的情况。例如,项集X中包含任务组件A、任务组件B和任务组件C,项集Y包含任务组件D和任务组件E,这些任务组件之间没有先后执行顺序,所以它们之间的关系在流水线中是并行的,因此项集X和Y构成的是无序事务数据库;再比如,项集M中包含任务组件A(1)、任务组件B(2)和任务组件C(3),项集N中包含任务组件D(1)和任务组件E(2),其中括号和数字是序列标记,代表了任务组件的先后顺序,这些任务组件之间的关系是串行的,因此项集M和N构成的是有序事务数据库。根据事务数据库中记录的项集来确定候选项集,即候选任务组件集。
[0030] 在候选任务组件集中,通过候选任务组件集的特征数据来筛选用户需要的任务组件集,即目标任务组件集,以目标任务组件集作为候选任务组模板。其中,候选任务组件集的特征数据包括但不限于任务组件的关联规则、支持度和置信度等等。
[0031] 步骤120、根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略。
[0032] 目标流水线的运行历史包括但不限于当前使用的任务组件的运行情况,例如运行成功或失败的情况,运行的时长等;目标任务组模板中任务组件的变更情况一般指的是当前任务组件的代码调整或变更的情况;任务组件之间的依赖关系是可以通过人为设定的代表任务组件之间互相影响或依赖的参考值。任务执行策略一般分为两种情况,即是否要跳过当前任务组件和当前任务组件运行失败时是否继续运行下一任务组件。因此,根据任务组件的运行历史、代码变更情况和依赖关系中的至少一项来确定当前执行的开发流水线中下一步的工作。
[0033] 本发明实施例的技术方案,根据开发流水线中的运行历史、开发过程的变更情况等,通过建立事务数据库来统筹各开发任务组件之间的关系,使得系统可以根据设定的方式对开发过程中的各任务组件进行自动调节,解决了以往流水线开发过程过于依赖人工经验且无法针对过程变化进行动态调整的问题,达到了快速应对开发变化的效果。
[0034] 实施例二
[0035] 本发明实施例二是对前述实施例的细化,图2为本发明实施例二提供的一种构建候选任务组模板的方法流程图,本发明实施例可适用于在开发流水线中构建候选任务组模板的情况,该方法可以由任务组件的智能处理装置来执行,具体包括如下步骤:
[0036] 步骤210、根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件。
[0037] 步骤220、确定所述事务数据库中的候选任务组件集。
[0038] 步骤231、根据所述事务数据库中包括所述候选任务组件集的事务数量作为所述候选任务组件集的支持数。
[0039] 将当前事务数据库中包含了候选任务组件集的事务的数量作为一个参考量,根据这个参考量计算候选任务组件集的支持度,因此称之为支持数。例如,候选任务组件集包含了两个任务组件A和B,在当前事务数据库中,同时含有A和B的事务有2个,则此事务数据库中A和B这个候选任务组件集的支持数是2。
[0040] 步骤232、根据所述候选任务组件集的支持数和所述事务数据库中事务总数确定所述候选任务组件集的支持度,并根据所述候选任务组件集的支持度对所述候选任务组件集进行筛选。
[0041] 将步骤231统计得到的支持数与事务数据库中事务的总数相比,得到的比值即为候选事务组件集的支持度,并根据这个支持度和人为的设定的筛选规则对候选任务组件集进行筛选。
[0042] 例如,当前无序事务数据库S中共有4个事务,其中包含了候选任务组件集的事务有2个,即候选任务组件集的支持数是2,因此候选任务组件集的支持度是50%。然后根据人为设定的支持度筛选规则对此候选任务组件集进行判断,若该候选任务组件集的支持度超过了设定的最低阈值要求,则将其选中,否则被系统舍弃不选。
[0043] 步骤233、根据经筛选的候选任务组件集中的任务组件,确定候选关联规则,并确定候选关联规则的置信度。
[0044] 候选关联规则即指具有串行关系的两个不同的任务组件之间的先后执行顺序,候选关联规则一般是人为设定的。比如,用户发现筛选后的任务组件集中包含了任务组件A和B,根据开发原则或代码本身的运行原则等,用户设定“A必须先于B执行”的关联规则。候选关联规则的置信度理解为在含有某任务组件的任务组件集之中又含有其他任务组件的条件概率,比如,在含有任务组件A的所有任务组件集中,同时又含有任务组件B的条件概率。可以将使用任务组件集中包含A和B的记录数与所有包含A的记录数相比,得到的比值,作为A和B候选关联规则的置信度。
[0045] 步骤234、根据所述候选关联规则的置信度,对所述候选关联规则和所述候选关联规则所属的候选任务组件集进行筛选,得到目标任务组件集。
[0046] 根据步骤233中得到的候选关联规则的置信度,与人为设定的用以筛选的置信度最低阈值进行对比,如果超过最低阈值要求,则该候选关联规则所属的候选任务组件集被系统选中作为目标任务组件集,并作为候选任务组模板,否则被系统舍弃不选。
[0047] 被选出的任务组模板可按照管理规则及时更新任务组及相关参数。管理规则受最大参数更新间隔时间、使用频率、最大容纳量三种因素影响。最大参数更新间隔时间是指:任务组中任意单个组件的参数发生变化的最大间隔时间。使用频率包含任务组在最大参数更新间隔时间内的使用频率和任务组在所有情况下的使用频率。所述管理规则是人工设定的,主要包括但不限于更新频率、参数更新设置和筛选条件等等。例如,每隔x天检测并更新任务组参数,并设定系统使用对应任务组最近一个月内使用频次最多的参数进行覆盖,即更新频率设置和参数更新设置。又如,每天检测更新任务组中各组件参数,使用对应最新运行成功的组件参数进行覆盖,即筛选条件设置。
[0048] 在一个具体的例子中,若任务组在最大参数更新间隔时间内使用频率大于50%,则保留当前任务组的参数设置,否则更新为最新的任务组件参数。当模板库已达到最大容纳量且有新增的任务组模板时,根据任务组使用频率从小到大的顺序进行回收,然后再添加新的任务组模板。例如,一个任务组当中最多只能存储n个任务组模板,如果系统自动存储的任务组模板数量大于n个,则将使用频率最低的任务组模板回收掉,用以腾出空间添加新的或使用频率高的其他模板。
[0049] 在一种可选的实施方式中,所述根据所述候选任务组件集的支持数和所述事务数据库中事务总数确定所述候选任务组件集的支持度,包括:
[0050] 若所述事务数据库的事务类型为有序事务,则根据候选任务组件集中相邻任务组件在事务中的序列标记,确定所述相邻任务组件的时间间隔。
[0051] 如果当前事务数据库为有序事务数据库,其中的每个任务组件都会被冠以序列标记,用以标记该任务组件在事务中执行的顺序。根据这种序列标记计算出不同的任务组件之间的时间间隔。例如,当前有序事务库中含有4个任务组件,分别是A(1)、B(2)、C(3)和D(4),通过对序列标记数的计算,可以知道B和D之间的时间间隔为2。
[0052] 若所述相邻任务组件的时间间隔小于或等于时间间隔阈值,则将支持度调节值,与所述候选任务组件集的支持数占所述事务数据库中事务总数的比例值之和,作为所述候选任务组件集的支持度。
[0053] 在实际工作中,用户人为设定一个时间间隔的最大阈值,如果计算得出的两任务组件之间的时间间隔在最大阈值内,即被视为满足时间序列约束,在原有的支持度的基础上附加一个支持度调节值,用以提高这个任务组件集的支持度,支持度调节值也是人为设定的,可以是1,即100%。
[0054] 若所述相邻任务组件的时间间隔大于时间间隔阈值,则将所述候选任务组件集的支持数占所述事务数据库中事务总数的比例值,作为所述候选任务组件集的支持度。
[0055] 如果计算得出的两任务组件之间的时间间隔超过了最大阈值,被视为不满足时间序列约束,不可以在原有支持度上附加支持度调节值,所以保持原有支持度不变。
[0056] 本发明实施例的技术方案,通过建立支持度和置信度的概念与计算方法,解决了以往开发过程中无法针对不同任务组件进行筛选导致重复构建过多的问题,使系统可以更好的选择任务组模板进行开发,提升了系统自动筛选模板的速度和效率,为整体开发流水线提供保障。
[0057] 实施例三
[0058] 本发明实施例三是对实施例一的细化与追加,图3为本发明实施例三提供的一种任务组件的智能处理方法的流程图,本发明实施例可适用于开发流水线中根据开发任务的变更情况灵活改变开发策略的情况,该方法可以由任务组件的智能处理装置来执行,具体包括如下步骤:
[0059] 步骤310、根据从候选任务组模板中选择的目标任务组模板构建目标流水线。
[0060] 步骤320、在目标流水线中当前任务组件运行失败的情况下,根据当前任务组件的运行历史,当前任务组件的代码变更情况,或当前任务组件与目标流水线中下一任务组件之间的依赖关系,确定是否继续运行下一任务组件。
[0061] 如果开发流水线中的当前任务组件没有运行成功,则根据该任务组件的运行历史、代码变更情况和与下一个任务组件之间的依赖关系,系统判断是否可以继续执行下一个任务组件。
[0062] 可选的,所述将在目标流水线中当前任务组件运行失败的情况下,根据当前任务组件的运行历史,当前任务组件的代码变更情况,或当前任务组件与目标流水线中下一任务组件之间的依赖关系,确定是否继续运行下一任务组件,还包括:
[0063] 当前任务组件的运行成功率、当前任务组件的平均运行时长、当前任务组件运行失败后下一任务组件运行成功的条件概率,作为所述当前任务组件的运行历史。
[0064] 即当前运行失败的任务组件的运行历史主要包括:历史运行的成功率和该运行失败的任务组件的平均运行时长,以及此任务组件运行失败后下一任务组件成功运行的可能性。
[0065] 可选的,还包括,将当前任务组件的新增代码行数、删除代码行数与更新代码行数之和,作为当前任务组件的代码调整行数。
[0066] 根据所述代码调整行数和当前任务组件的代码总行数,确定所述当前任务组件的代码变更情况。
[0067] 例如,可以将统计得出的代码调整行数和当前任务组件的代码总行数相比,得出的比值作为代码变更情况。
[0068] 可选的,还包括,将有序事务数据库中包括当前任务组件和下一任务组件的至少一个事务,作为辅助事务。
[0069] 如果当前运行的任务组件是处于有序事务数据库中,那么定义一个辅助事务的概念,可以选择包含当前任务组件和下一任务组件的至少一个事务作为辅助事务。例如有序事务数据库中有4个事务,其中有2个事务包含了当前任务组件A和下一任务组件B,那么这2个事务可以被定义为辅助事务。
[0070] 根据当前任务组件与下一任务组件在所述辅助事务中的序列标记,确定当前任务组件与下一任务组件在所述辅助事务中的依赖值。
[0071] 用户根据设定的依赖值计算方式计算二者之间的依赖值,其中同样的两个任务组件在不同事务中的序列标记不一定相同,因此依赖值不一定相同。
[0072] 在一个具体的例子中,用户设定,同一事务中两不同序列标记的任务组件之间的时间间隔为n,则此二者之间的依赖值为 比如,当前有序事务数据库中,在事务X中,当前任务组件A的序列标记是(1),下一任务组件B的序列标记是(2),二者直接相连,其时间间隔为1,根据依赖值计算方式得出二者的依赖值为1;在事务Y中,当前任务组件A的序列标记是(1),下一任务组件B的序列标记是(4),其时间间隔为3,根据依赖值计算方式得出二者的依赖值为
[0073] 将当前任务组件与下一任务组件在各辅助事务中的依赖值之和,作为总依赖值。
[0074] 同一有序事务数据库中,将当前任务组件与下一任务组件在不同辅助事务的依赖值相加,得到的结果作为总依赖值。
[0075] 例如,当前任务组件A和下一任务组件B在事务X中的依赖值为1,在事务Y中的依赖值为 则总依赖值为
[0076] 将总依赖值与辅助事务的事务数量之间的比例值,作为所述当前任务组件与目标流水线中下一任务组件之间的依赖关系。
[0077] 得到的总依赖值和辅助事务的总量的数值相比,得到的比值即为当前任务组件与下一任务组件之间的依赖关系。
[0078] 例如,在当前有序事务数据库中,总依赖值为 辅助事务有2件,则当前任务组件与目标流水线中下一任务组件之间的依赖关系为
[0079] 计算完成后,将会录入依赖关系表中,方便下次查询。
[0080] 将以上的量化数据作为输入,使用基于历史数据训练完成的决策模型,决策是否继续执行,输出0表示停止运行,输出1表示继续执行下一个任务。
[0081] 在一个可选的实施方式中,所述根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略,包括:
[0082] 若目标流水线的仓库、分支、代理机和流水线结构未改变,目标流水线中在当前任务组件之前的其他任务组件执行成功且当前任务组件的配置参数未改变,以及所述目标任务组件的代码未改变,则跳过所述当前任务组件。
[0083] 实际中,系统对比上一次运行历史,仓库、分支、代理机、流水线结构未改变;代码未变更;该任务之前的任务执行成功且配置参数及预变量未改变。当以上条件均成立时,则自动跳过该任务。当以上条件不成立,则执行该任务。
[0084] 其中,流水线的运行可以是系统设定的运行方式,例如在流水线与敏捷开发环境中看板的工作项之间建立关联,引入事件hook机制,将工作项状态变更、工作流审批、版本发布过程作为事件,触发代码变更,流水线运行。同时可以将流水线的运行情况反馈给关联项。以投产版本为例,当投产版本从提测流转到测试阶段,则会触发测试环境的流水线运行,并将运行情况写入投产版本详情中。
[0085] 本发明实施例的技术方案,根据开发流水线中的运行历史、开发过程的变更情况等,通过建立事务数据库来统筹各开发任务组件之间的关系,使得系统可以根据设定的方式对开发过程中的各任务组件进行自动调节,解决了以往流水线开发过程过于依赖人工经验且无法针对过程变化进行动态调整的问题,而且达到了迅速应对发开变化和减少开发过程重复构建的效果。
[0086] 实施例四
[0087] 图4是本发明实施例四提供的一种任务组件的智能处理装置的结构示意图,本实施例可适用于开发流水线中根据开发任务的变更情况灵活改变开发策略的情况。该装置可以由软件和/或硬件的方式来实现,可配置于电子设备中。如图4所示,该装置可以包括:
[0088] 目标流水线构建模块410,用于根据从候选任务组模板中选择的目标任务组模板构建目标流水线;其中,所述候选任务组模板通过如下方式构建:根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件;确定所述事务数据库中的候选任务组件集;确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,作为候选任务组模板;
[0089] 任务执行策略确定模块420,用于根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略。
[0090] 在一种可选实施方式中,所述目标流水线构建模块包括:
[0091] 支持数确定单元,用于根据所述事务数据库中包括所述候选任务组件集的事务数量作为所述候选任务组件集的支持数;
[0092] 支持度筛选单元,用于根据所述候选任务组件集的支持数和所述事务数据库中事务总数确定所述候选任务组件集的支持度,并根据所述候选任务组件集的支持度对所述候选任务组件集进行筛选;
[0093] 置信度确定单元,用于根据经筛选的候选任务组件集中的任务组件,确定候选关联规则,并确定候选关联规则的置信度;
[0094] 任务组件集筛选单元,用于根据所述候选关联规则的置信度,对所述候选关联规则和所述候选关联规则所属的候选任务组件集进行筛选,得到目标任务组件集。
[0095] 在一种可选实施方式中,所述支持度筛选单元包括:
[0096] 时间间隔确定子单元,用于若所述事务数据库的事务类型为有序事务,则根据候选任务组件集中相邻任务组件在事务中的序列标记,确定所述相邻任务组件的时间间隔;
[0097] 支持度确定子单元,用于若所述相邻任务组件的时间间隔小于或等于时间间隔阈值,则将支持度调节值,与所述候选任务组件集的支持数占所述事务数据库中事务总数的比例值之和,作为所述候选任务组件集的支持度;若所述相邻任务组件的时间间隔大于时间间隔阈值,则将所述候选任务组件集的支持数占所述事务数据库中事务总数的比例值,作为所述候选任务组件集的支持度。
[0098] 在一种可选实施方式中,所述任务执行策略确定模块包括:
[0099] 运行任务确认单元,用以在目标流水线中当前任务组件运行失败的情况下,根据当前任务组件的运行历史,当前任务组件的代码变更情况,或当前任务组件与目标流水线中下一任务组件之间的依赖关系,确定是否继续运行下一任务组件。
[0100] 在一种可选实施方式中,所述任务执行策略确定模块还包括:
[0101] 运行历史确定单元,用于将当前任务组件的运行成功率、当前任务组件的平均运行时长、当前任务组件运行失败后下一任务组件运行成功的条件概率,作为所述当前任务组件的运行历史。
[0102] 在一种可选实施方式中,所述任务执行策略确定模块还包括:
[0103] 代码调整行数确定单元,用于将当前任务组件的新增代码行数、删除代码行数与更新代码行数之和,作为当前任务组件的代码调整行数;
[0104] 代码变更情况确定单元,用于根据所述代码调整行数和当前任务组件的代码总行数,确定所述当前任务组件的代码变更情况。
[0105] 在一种可选实施方式中,所述任务执行策略确定模块还包括:
[0106] 辅助事务确定单元,用于将有序事务数据库中包括当前任务组件和下一任务组件的至少一个事务,作为辅助事务;
[0107] 依赖值确定单元,用于根据当前任务组件与下一任务组件在所述辅助事务中的序列标记,确定当前任务组件与下一任务组件在所述辅助事务中的依赖值;
[0108] 总依赖值确定单元,用于将当前任务组件与下一任务组件在各辅助事务中的依赖值之和,作为总依赖值;
[0109] 依赖关系确定单元,用于将总依赖值与辅助事务的事务数量之间的比例值,作为所述当前任务组件与目标流水线中下一任务组件之间的依赖关系。
[0110] 本发明实施例所提供的一种任务组件的智能处理装置可执行本发明任意实施例所提供的一种任务组件的智能处理方法,具备执行一种任务组件的智能处理方法相应的功能模块和有益效果。
[0111] 实施例五
[0112] 本申请实施例五提供了一种电子设备,该电子设备中可集成本申请实施例提供的一种任务组件的智能处理装置,该电子设备可以是配置于系统内的,也可以是执行系统内的部分或者全部功能的设备。图5是本申请实施例五提供的一种电子设备的结构示意图。如图5所示,本实施例提供了一种电子设备500,其包括:一个或多个处理器520;存储装置510,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器520执行,使得所述一个或多个处理器520实现本申请实施例所提供的一种任务组件的智能处理方法,该方法包括:
[0113] 根据从候选任务组模板中选择的目标任务组模板构建目标流水线;其中,所述候选任务组模板通过如下方式构建:根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件;确定所述事务数据库中的候选任务组件集;确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,作为候选任务组模板;
[0114] 根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略。
[0115] 当然,本领域技术人员可以理解,处理器520还实现本申请任意实施例所提供的一种任务组件的智能处理方法的技术方案。
[0116] 图5显示的电子设备500仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0117] 如图5所示,该电子设备500包括处理器520、存储装置510、输入装置530和输出装置540;电子设备中处理器520的数量可以是一个或多个,图5中以一个处理器520为例;电子设备中的处理器520、存储装置510、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线550连接为例。
[0118] 存储装置510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的一种任务组件的智能处理方法对应的程序指令。
[0119] 存储装置510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0120] 输入装置530可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏、扬声器等电子设备。
[0121] 实施例六
[0122] 本申请实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种任务组件的智能处理方法,该方法包括:
[0123] 根据从候选任务组模板中选择的目标任务组模板构建目标流水线;其中,所述候选任务组模板通过如下方式构建:根据用户对任务组件的操作节点和历史行为,构建事务数据库;其中,所述事务数据库包括至少两个事务,且所述事务包括至少一个任务组件;确定所述事务数据库中的候选任务组件集;确定候选任务组件集的特征数据,并根据所述候选任务组件集的特征数据,从候选任务组件集中选择目标任务组件集,作为候选任务组模板;
[0124] 根据目标流水线的运行历史、所述目标任务组模板中任务组件的变更情况或任务组件之间的依赖关系中的至少一项,确定所述目标流水线的任务执行策略。
[0125] 存储介质是指任何的各种类型的存储器电子设备或存储电子设备。术语“存储介质”旨在包括:安装介质,例如CD‑ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同未知中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
[0126] 当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的一种任务组件的智能处理操作,还可以执行本申请任意实施例所提供的一种任务组件的智能处理方法中的相关操作。
[0127] 上述实施例中提供的一种任务组件的智能处理装置、介质及电子设备可执行本申请任意实施例所提供的一种任务组件的智能处理方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的一种任务组件的智能处理方法。
[0128] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。