一种组合任务完成复杂任务的方法

文档序号:9672981阅读:1145来源:国知局
一种组合任务完成复杂任务的方法
【技术领域】
[0001] 本发明设计软件开发技术领域,特别是一种组合任务完成复杂任务的方法。
【背景技术】
[0002] 在云操作系统当中,存在运众多的基础功能任务来操作维护虚拟机。而在许多的 场景中,往往是多个任务组合而成来完成一个复杂的任务,传统的做法往往是在原任务上 进行修改,在任务完成后再执行一个任务。或者直接增加一个组合任务来完成复杂任务,运 样带来W下问题:
[0003] -是对原任务进行修改后,会对原代码造成侵入,加大了禪合性,不是一个好的设 计;
[0004] 二是修改原任务后,就必须增加开关,进行判断是否执行后续任务,一旦复杂功能 增多,后续任务就变多,逻辑将变得很复杂,代码难W维护;
[0005] Ξ是原任务将变得不再通用,侵入了过多的代码,一旦再有新的复杂任务要用到 此任务,则需要做很多的考虑来避免执行了错误的任务;
[0006] 四是如果不对原任务进行修改,而是新增组合任务来完成复杂任务,运样会导致 越来越多的重复冗余代码,当一个基础任务逻辑需要修改的时候,则运些相关任务都需要 修改,代码难W维护.
[0007] 为了代码降低代码的禪合性,提高复杂任务的开发速度,增强系统的灵活性和可 扩展性,需要一种组合任务完成复杂任务的方法。

【发明内容】

[000引本发明解决的技术问题在于提供一种组合任务完成复杂任务的方法,解决了由开 发多个简单任务组合而成的复杂任务时导致对原代码的侵入、加大程序的禪合性和代码难 W维护的问题。
[0009] 本发明解决上述技术问题的技术方案是:
[0010] 所述的方法包括如下步骤:
[0011] 步骤1:把任务的顺序、触发条件等记录到任务组中;
[0012] 步骤2:执行任务组;
[0013] 步骤3:在任务组中找到符合条件的任务或者多个并行任务,从参数池中获取所需 的参数,并执行任务;
[0014] 步骤4:判断任务是否执行成功,如果成功,则执行步骤5;如果失败则执行步骤6;
[0015] 步骤5:把任务执行完成的输出参数记录到参数池中;
[0016] 步骤6:判断是否符合条件执行下一个任务,符合条件,则执行步骤3;否则执行步 骤7;
[0017] 步骤7:所有任务都执行完成,或者满足任务完成条件,则流程结束。
[0018] 所述任务组记录的信息包括单一任务对应的类和方法,入参,需要从任务池中获 取的参数,任务层级,上级任务ID,触发条件。
[0019] 所述参数池将每一步任务执行后的输出参数独立放到任务组,任务组内部公共的 池,为后续任务调用所需要依赖的参数提供一个获取途径;在规划初规范任务出参,或者在 进入参数池的时候增加标识,W防止不同任务之间参数重复。
[0020] 所述的并行任务,为在任务组的某一层级的时候,多个对象同时执行的多个任务; 运些任务在上一级执行完后,会同时并行执行。
[0021] 所述的步骤6中,执行完此任务后,判断是否满足此任务的下一个任务的触发条 件;满足则为下一个任务符合执行条件。
[0022] 所述的步骤7中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并 行任务,则为所有并行任务执行完成后都判断不符合执行下一个任务的条件,则为任务结 束。
[0023] 本发明可W把不同的基础任务随意组合来达到完成复杂任务,而不需要去改动原 来的任务代码,不需要新增其他任务。大大提高了开发速度,同时保持了代码的可维护性和 低禪合。而且即使任务流程发生变化,只需要修改任务组的信息,调整顺序和触发条件,即 可完成相应的修改,简单快捷,为处理复杂任务,组合任务提供了一个很好的解决方案。
【附图说明】
[0024] 下面结合附图对本发明进一步说明:
[0025] 图1为本发明方法流程图。
【具体实施方式】
[0026] 见1所示,本发明首先把所有设及的任务信息插入到任务组信息中。
[0027]
[002引
[0029]

[0033]
[0034] 用反射机制找到对应任务的类和方法,把保存参数的JSON字符串反序列化,设置 到方法中,执行任务。
[0035]
[0036]
【主权项】
1. 一种组合任务完成复杂任务的方法,其特征在于: 所述的方法包括如下步骤: 步骤1:把任务的顺序、触发条件等记录到任务组中; 步骤2:执行任务组; 步骤3:在任务组中找到符合条件的任务或者多个并行任务,从参数池中获取所需的参 数,并执行任务; 步骤4:判断任务是否执行成功,如果成功,则执行步骤5;如果失败则执行步骤6; 步骤5:把任务执行完成的输出参数记录到参数池中; 步骤6:判断是否符合条件执行下一个任务,符合条件,则执行步骤3;否则执行步骤7; 步骤7:所有任务都执行完成,或者满足任务完成条件,则流程结束。2. 根据权利要求1所述的组合任务完成复杂任务的方法,其特征在于:所述任务组记录 的信息包括单一任务对应的类和方法,入参,需要从任务池中获取的参数,任务层级,上级 任务ID,触发条件。3. 根据权利要求1所述的组合任务完成复杂任务的方法,其特征在于:所述参数池将每 一步任务执行后的输出参数独立放到任务组,任务组内部公共的池,为后续任务调用所需 要依赖的参数提供一个获取途径;在规划初规范任务出参,或者在进入参数池的时候增加 标识,以防止不同任务之间参数重复。4. 根据权利要求2所述的组合任务完成复杂任务的方法,其特征在于:所述参数池将每 一步任务执行后的输出参数独立放到任务组,任务组内部公共的池,为后续任务调用所需 要依赖的参数提供一个获取途径;在规划初规范任务出参,或者在进入参数池的时候增加 标识,以防止不同任务之间参数重复。5. 根据权利要求1至4任一项所述的组合任务完成复杂任务的方法,其特征在于:所述 的并行任务,为在任务组的某一层级的时候,多个对象同时执行的多个任务;这些任务在上 一级执行完后,会同时并行执行。6. 根据权利要求1至4任一项所述的组合任务完成复杂任务的方法,其特征在于:所述 的步骤6中,执行完此任务后,判断是否满足此任务的下一个任务的触发条件;满足则为下 一个任务符合执行条件。7. 根据权利要求5所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤6中, 执行完此任务后,判断是否满足此任务的下一个任务的触发条件;满足则为下一个任务符 合执行条件。8. 根据权利要求1至4任一项所述的组合任务完成复杂任务的方法,其特征在于:所述 的步骤7中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所 有并行任务执行完成后都判断不符合执行下一个任务的条件,则为任务结束。9. 根据权利要求5所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤7中, 找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所有并行任务 执行完成后都判断不符合执行下一个任务的条件,则为任务结束。10. 根据权利要求6所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤7 中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所有并行 任务执行完成后都判断不符合执行下一个任务的条件,则为任务结束。
【专利摘要】本发明设计软件开发技术领域,特别是一种组合任务完成复杂任务的方法。本发明首先把复杂任务需要用到的任务、顺序、触发条件记录到任务组中。然后执行任务组,在任务组中找出第一个任务或多个并行任务执行。执行完成后把输出参数记录到参数池中,并判断是否满足条件执行下一个任务,满足条件则继续要任务组中寻找下一个或多个并发任务,从参数池中获取所需参数,并执行。如此循环,直到任务组的任务都完成或者满足完成条件。本发明解决了在需要执行复杂任务的时候需修改、侵入原有任务代码,或者需重新开发新的组合任务从而导致过多冗余代码、需要大量工作量的问题。提供了一种把不同任务随意组合来完成复杂任务的方法。
【IPC分类】G06F9/48
【公开号】CN105446808
【申请号】CN201510776389
【发明人】姚文俊, 杨松, 季统凯
【申请人】国云科技股份有限公司
【公开日】2016年3月30日
【申请日】2015年11月12日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1