CN105446808A - 一种组合任务完成复杂任务的方法 - Google Patents
一种组合任务完成复杂任务的方法 Download PDFInfo
- Publication number
- CN105446808A CN105446808A CN201510776389.3A CN201510776389A CN105446808A CN 105446808 A CN105446808 A CN 105446808A CN 201510776389 A CN201510776389 A CN 201510776389A CN 105446808 A CN105446808 A CN 105446808A
- Authority
- CN
- China
- Prior art keywords
- task
- parameter
- complex
- tasks
- completes
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
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 (10)
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中,找不到下一个符合条件的任务,则结束;是如果层级的是多个并行任务,则为所有并行任务执行完成后都判断不符合执行下一个任务的条件,则为任务结束。
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 true CN105446808A (zh) | 2016-03-30 |
CN105446808B 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) |
Cited By (2)
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 (5)
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 |
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 | 武大吉奥信息技术有限公司 | 一种支持多模式驱动的工作流引擎 |
-
2015
- 2015-11-12 CN CN201510776389.3A patent/CN105446808B/zh active Active
Patent Citations (5)
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 |
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 | 武大吉奥信息技术有限公司 | 一种支持多模式驱动的工作流引擎 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990943A (zh) * | 2017-03-30 | 2017-07-28 | 微梦创科网络科技(中国)有限公司 | 并行任务处理方法和装置 |
CN109408216A (zh) * | 2018-11-12 | 2019-03-01 | 北京字节跳动网络技术有限公司 | 任务生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105446808B (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FI3958116T3 (fi) | Yleiskäyttöinen grafiikkalaskentayksikkö ja menetelmä sekoitetun tarkkuuden käskyjen suorittamiseksi | |
CN106156186A (zh) | 一种数据模型管理装置、服务器及数据处理方法 | |
Nugroho et al. | Comparative analysis of software development methods between Parallel, V-Shaped and Iterative | |
CN100362479C (zh) | 基于自动化测试脚本对被测对象进行测试的方法和系统 | |
WO2015127796A1 (zh) | 一种处理串行任务的数据处理装置及方法 | |
JP2018530077A5 (zh) | ||
CN105446808A (zh) | 一种组合任务完成复杂任务的方法 | |
WO2014131304A1 (zh) | 基于有限状态机的云计算软件测试方法 | |
CN105589739B (zh) | 一种流程控制系统及方法 | |
CN106502770A (zh) | 一种基于有限状态机的hmi状态迁移方法 | |
US10261922B2 (en) | Field device commissioning system and field device commissioning method | |
CN109784484A (zh) | 神经网络加速方法、装置、神经网络加速芯片及存储介质 | |
CN109409036A (zh) | 基于冗余代码的控制流混淆方法及装置、存储介质和终端 | |
US9665668B2 (en) | Configuring a dispatching rule for execution in a simulation | |
CN105068793A (zh) | 生成业务逻辑关系图以及实现业务应用的方法和装置 | |
US9141511B2 (en) | Method and system for verifying sleep wakeup protocol by computing state transition paths | |
Redl | Automated Benchmarking of KR-systems. | |
CN104317590A (zh) | 嵌入式配置系统及嵌入式配置审核流程的方法 | |
WO2019126797A3 (en) | System and method for executing instructions | |
CN104570759B (zh) | 控制系统中点定位问题的快速二叉树法 | |
Bedi et al. | Loop based algorithm for automatic sketching of planar kinematic chains | |
SE1750467A1 (en) | Arrangement, System, Method and Computer Program for Simulating a Quantum Toffoli Gate | |
CN111739132A (zh) | 一种基于局部控制器的全身骨骼运动效果修改方法 | |
Wang et al. | A Reliability-oriented Evolution Method of Software Architecture Based on Contribution Degree of Component. | |
CN110427210A (zh) | 一种storm拓扑任务的快速构建方法及装置 |
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 |