CN105446808B - 一种组合任务完成复杂任务的方法 - Google Patents

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

Info

Publication number
CN105446808B
CN105446808B CN201510776389.3A CN201510776389A CN105446808B CN 105446808 B CN105446808 B CN 105446808B CN 201510776389 A CN201510776389 A CN 201510776389A CN 105446808 B CN105446808 B CN 105446808B
Authority
CN
China
Prior art keywords
task
parameter
combined
condition
groups
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.)
Active
Application number
CN201510776389.3A
Other languages
English (en)
Other versions
CN105446808A (zh
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.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud 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 G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201510776389.3A priority Critical patent/CN105446808B/zh
Publication of CN105446808A publication Critical patent/CN105446808A/zh
Application granted granted Critical
Publication of CN105446808B publication Critical patent/CN105446808B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明设计软件开发技术领域,特别是一种组合任务完成复杂任务的方法。本发明首先把复杂任务需要用到的任务、顺序、触发条件记录到任务组中。然后执行任务组,在任务组中找出第一个任务或多个并行任务执行。执行完成后把输出参数记录到参数池中,并判断是否满足条件执行下一个任务,满足条件则继续要任务组中寻找下一个或多个并发任务,从参数池中获取所需参数,并执行。如此循环,直到任务组的任务都完成或者满足完成条件。本发明解决了在需要执行复杂任务的时候需修改、侵入原有任务代码,或者需重新开发新的组合任务从而导致过多冗余代码、需要大量工作量的问题。提供了一种把不同任务随意组合来完成复杂任务的方法。

Description

一种组合任务完成复杂任务的方法
技术领域
本发明设计软件开发技术领域,特别是一种组合任务完成复杂任务的方法。
背景技术
在云操作系统当中,存在这众多的基础功能任务来操作维护虚拟机。而在许多的场景中,往往是多个任务组合而成来完成一个复杂的任务,传统的做法往往是在原任务上进行修改,在任务完成后再执行一个任务。或者直接增加一个组合任务来完成复杂任务,这样带来以下问题:
一是对原任务进行修改后,会对原代码造成侵入,加大了耦合性,不是一个好的设计;
二是修改原任务后,就必须增加开关,进行判断是否执行后续任务,一旦复杂功能增多,后续任务就变多,逻辑将变得很复杂,代码难以维护;
三是原任务将变得不再通用,侵入了过多的代码,一旦再有新的复杂任务要用到此任务,则需要做很多的考虑来避免执行了错误的任务;
四是如果不对原任务进行修改,而是新增组合任务来完成复杂任务,这样会导致越来越多的重复冗余代码,当一个基础任务逻辑需要修改的时候,则这些相关任务都需要修改,代码难以维护.
为了代码降低代码的耦合性,提高复杂任务的开发速度,增强系统的灵活性和可扩展性,需要一种组合任务完成复杂任务的方法。
发明内容
本发明解决的技术问题在于提供一种组合任务完成复杂任务的方法,解决了由开发多个简单任务组合而成的复杂任务时导致对原代码的侵入、加大程序的耦合性和代码难以维护的问题。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
步骤1:把任务的顺序、触发条件等记录到任务组中;
步骤2:执行任务组;
步骤3:在任务组中找到符合条件的任务或者多个并行任务,从参数池中获取所需的参数,并执行任务;
步骤4:判断任务是否执行成功,如果成功,则执行步骤5;如果失败则执行步骤6;
步骤5:把任务执行完成的输出参数记录到参数池中;
步骤6:判断是否符合条件执行下一个任务,符合条件,则执行步骤3;否则执行步骤7;
步骤7:所有任务都执行完成,或者满足任务完成条件,则流程结束。
所述任务组记录的信息包括单一任务对应的类和方法,入参,需要从任务池中获取的参数,任务层级,上级任务ID,触发条件。
所述参数池将每一步任务执行后的输出参数独立放到任务组,任务组内部公共的池,为后续任务调用所需要依赖的参数提供一个获取途径;在规划初规范任务出参,或者在进入参数池的时候增加标识,以防止不同任务之间参数重复。
所述的并行任务,为在任务组的某一层级的时候,多个对象同时执行的多个任务;这些任务在上一级执行完后,会同时并行执行。
所述的步骤6中,执行完此任务后,判断是否满足此任务的下一个任务的触发条件;满足则为下一个任务符合执行条件。
所述的步骤7中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所有并行任务执行完成后都判断不符合执行下一个任务的条件,则为任务结束。
本发明可以把不同的基础任务随意组合来达到完成复杂任务,而不需要去改动原来的任务代码,不需要新增其他任务。大大提高了开发速度,同时保持了代码的可维护性和低耦合。而且即使任务流程发生变化,只需要修改任务组的信息,调整顺序和触发条件,即可完成相应的修改,简单快捷,为处理复杂任务,组合任务提供了一个很好的解决方案。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法流程图。
具体实施方式
见1所示,本发明首先把所有涉及的任务信息插入到任务组信息中。
执行完一个任务后,则根据这一个任务找到下一个任务
用反射机制找到对应任务的类和方法,把保存参数的JSON字符串反序列化,设置到方法中,执行任务。

Claims (9)

1.一种组合任务完成复杂任务的方法,其特征在于:
所述的方法包括如下步骤:
步骤1:把任务的顺序、触发条件记录到任务组中;
步骤2:执行任务组;
步骤3:在任务组中找到符合条件的任务或者多个并行任务,从参数池中获取所需的参数,并执行任务;
步骤4:判断任务是否执行成功,如果成功,则执行步骤5;如果失败则执行步骤6;
步骤5:把任务执行完成的输出参数记录到参数池中;
步骤6:判断是否符合条件执行下一个任务,符合条件,则执行步骤3;否则执行步骤7;
步骤7:所有任务都执行完成,或者满足任务完成条件,则流程结束;
所述任务组记录的信息包括单一任务对应的类和方法,入参,即传入参数,需要从任务池中获取的参数,任务层级,上级任务ID,触发条件。
2.根据权利要求1所述的组合任务完成复杂任务的方法,其特征在于:所述参数池将每一步任务执行后的输出参数独立放到任务组,任务组内部公共的池,为后续任务调用所需要依赖的参数提供一个获取途径;在规划初规范任务出参,或者在进入参数池的时候增加标识,以防止不同任务之间参数重复;
所述的出参,即传出参数。
3.根据权利要求1或2所述的组合任务完成复杂任务的方法,其特征在于:所述的并行任务,为在任务组的某一层级的时候,多个对象同时执行的多个任务;这些任务在上一级执行完后,会同时并行执行。
4.根据权利要求1或2所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤6中,执行完此任务后,判断是否满足此任务的下一个任务的触发条件;满足则为下一个任务符合执行条件。
5.根据权利要求3所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤6中,执行完此任务后,判断是否满足此任务的下一个任务的触发条件;满足则为下一个任务符合执行条件。
6.根据权利要求1或2所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤7中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所有并行任务执行完成后都判断不符合执行下一个任务的条件,则为任务结束。
7.根据权利要求3所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤7中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所有并行任务执行完成后都判断不符合执行下一个任务的条件,则为任务结束。
8.根据权利要求4所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤7中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所有并行任务执行完成后都判断不符合执行下一个任务的条件,则为任务结束。
9.根据权利要求5所述的组合任务完成复杂任务的方法,其特征在于:所述的步骤7中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所有并行任务执行完成后都判断不符合执行下一个任务的条件,则为任务结束。
CN201510776389.3A 2015-11-12 2015-11-12 一种组合任务完成复杂任务的方法 Active CN105446808B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510776389.3A CN105446808B (zh) 2015-11-12 2015-11-12 一种组合任务完成复杂任务的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510776389.3A CN105446808B (zh) 2015-11-12 2015-11-12 一种组合任务完成复杂任务的方法

Publications (2)

Publication Number Publication Date
CN105446808A CN105446808A (zh) 2016-03-30
CN105446808B true CN105446808B (zh) 2019-05-21

Family

ID=55557044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510776389.3A Active CN105446808B (zh) 2015-11-12 2015-11-12 一种组合任务完成复杂任务的方法

Country Status (1)

Country Link
CN (1) CN105446808B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106990943A (zh) * 2017-03-30 2017-07-28 微梦创科网络科技(中国)有限公司 并行任务处理方法和装置
CN109408216A (zh) * 2018-11-12 2019-03-01 北京字节跳动网络技术有限公司 任务生成方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071480A (zh) * 2007-06-15 2007-11-14 南京联创科技股份有限公司 复杂业务系统中基于工作流的通用构件化流程调度方法
CN101110041A (zh) * 2007-08-23 2008-01-23 南京联创科技股份有限公司 组任务管理的方法
CN101567013A (zh) * 2009-06-02 2009-10-28 阿里巴巴集团控股有限公司 一种etl调度的实现方法及装置
CN104091222A (zh) * 2014-05-08 2014-10-08 武大吉奥信息技术有限公司 一种支持多模式驱动的工作流引擎

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149717A1 (en) * 2002-02-05 2003-08-07 William Heinzman Batch processing job streams using and/or precedence logic

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071480A (zh) * 2007-06-15 2007-11-14 南京联创科技股份有限公司 复杂业务系统中基于工作流的通用构件化流程调度方法
CN101110041A (zh) * 2007-08-23 2008-01-23 南京联创科技股份有限公司 组任务管理的方法
CN101567013A (zh) * 2009-06-02 2009-10-28 阿里巴巴集团控股有限公司 一种etl调度的实现方法及装置
CN104091222A (zh) * 2014-05-08 2014-10-08 武大吉奥信息技术有限公司 一种支持多模式驱动的工作流引擎

Also Published As

Publication number Publication date
CN105446808A (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
US10796244B2 (en) Method and apparatus for labeling training samples
US20200042328A1 (en) Autonomous Creation of New Microservices and Modification of Existing Microservices
CN105051679B (zh) 用于支持矢量排序算法和其他算法的具有树状结构的功能单元
WO2016036824A4 (en) Visually specifying subsets of components in graph-based programs through user interactions
WO2019024489A1 (zh) 项目进度管理方法、装置、终端设备及介质
JP2017504910A5 (zh)
US20150378873A1 (en) Automatically recommending test suite from historical data based on randomized evolutionary techniques
US9939792B2 (en) Systems and methods to adaptively select execution modes
CN103403699A (zh) 估算流数据库应用中的负荷削减数据
US10067818B2 (en) Recovery mechanisms across storage nodes that reduce the impact on host input and output operations
WO2015127796A1 (zh) 一种处理串行任务的数据处理装置及方法
CN105446808B (zh) 一种组合任务完成复杂任务的方法
CN106502770B (zh) 一种基于有限状态机的hmi状态迁移方法
RU2016119160A (ru) Способ и устройство для предоставления шлюза электронной транзакции
US20130332908A1 (en) Serial Debugging Experience for Parallel Programs
Rather et al. A comparative study of software development life cycle models
US9355500B2 (en) System and method for animating collision-free sequences of motions for objects placed across a surface
JP2023075239A (ja) 連合学習方法、装置、機器及び媒体
US20170288990A1 (en) Graph data representation and pre-processing for efficient parallel search tree traversal
CN113711265A (zh) 一种区块链交易追溯的方法及装置
US10209964B2 (en) Selecting COBOL perform statements for inlining
Huppe et al. Mining complex temporal api usage patterns: an evolutionary approach
US10862745B2 (en) Interface for creating a plan artifact
CN103973681A (zh) 用于运维管理审计系统的二层密码代填方法及模块
US9563540B2 (en) Automated defect positioning based on historical data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province

Applicant after: G-Cloud Technology Co., Ltd.

Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province

Applicant before: G-Cloud Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant