CN110968412B - 一种任务执行方法、系统及存储介质 - Google Patents
一种任务执行方法、系统及存储介质 Download PDFInfo
- Publication number
- CN110968412B CN110968412B CN201911279412.2A CN201911279412A CN110968412B CN 110968412 B CN110968412 B CN 110968412B CN 201911279412 A CN201911279412 A CN 201911279412A CN 110968412 B CN110968412 B CN 110968412B
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- sets
- host
- execution
- 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
Links
Images
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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/20—Administration of product repair or maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Hardware Redundancy (AREA)
- Retry When Errors Occur (AREA)
Abstract
本申请公开了一种任务执行方法,包括:至少一个主机执行至少两个任务集中的任务;在所述至少两个任务集中的任务之间存在关联的情况下,根据所述至少两个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中,所述集合点内所有任务均执行完成之后,所述至少一个主机执行与所述集合点相对应的下一个集合点内的任务;其中,每个任务集中的任务的执行,均依赖于所述任务与所述任务相邻的上一个任务的执行状态;本申请还公开了一种任务执行系统及存储介质;通过本申请实施例,可以在至少两个任务集中的任务存在关联的情况下,使运维任务的执行效率达到最优。
Description
技术领域
本发明涉及主机运维技术领域,尤其涉及一种任务执行方法、系统及存储介质。
背景技术
随着开发和运维(Development and Operations,DevOps)的兴起,越来越多的运维自动化框架和相关工具随之出现;同时,由于面向服务的架构(Service-OrientedArchitecture,SOA)和微服务对业务组件的拆分越来越细化,导致需要维护的主机规模呈指数级增长。在至少两个任务集中的任务存在关联的情况下,如何使运维任务的执行效率达到最优,是需要解决的技术问题。
发明内容
本发明实施例提供一种任务执行方法、系统及存储介质,使得在至少两个任务集中的任务存在关联的情况下,使运维任务的执行效率达到最优。
本发明实施例的技术方案是这样实现的:
至少一个主机执行至少两个任务集中的任务;
在所述至少两个任务集中的任务之间存在关联的情况下,根据所述至少两个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中,所述集合点内所有任务均执行完成之后,所述至少一个主机执行与所述集合点相对应的下一个集合点内的任务;
其中,每个任务集中的任务的执行,均依赖于所述任务相邻的上一个任务的执行状态。
上述方案中,在一个主机执行至少两个任务集中的任务的情况下,所述主机同时执行所述至少两个任务集中的任务;
所述至少两个任务集完全相同或者不完全相同;
所述至少两个任务集不完全相同包括:所述至少两个任务集中的任务不完全相同,和/或所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。
上述方案中,在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集完全相同的情况下,所述至少两个主机同时执行所述任务集中的任务。
上述方案中,在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集不完全相同的情况下,所述至少两个主机中的第一主机执行第一任务集中的任务;
所述至少两个主机中的第二主机,同时执行第二任务集中的任务;
所述至少两个任务集不完全相同包括:所述至少两个任务集中的任务不完全相同,和/或所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。
上述方案中,所述方法还包括:
在所述至少两个任务集中的第一任务集中的第一任务与第二任务集中的第二任务的序号相同,且所述第一任务的执行需要依赖所述第二任务的执行结果的情况下,将所述第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务集中与所述第二任务对应的集合点设置空操作指令NOP任务。
本申请还提供一种任务执行系统,所述系统包括:
至少一个主机,用于执行至少两个任务集中的任务;
所述系统还包括:划分单元,用于在所述至少两个任务集中的任务之间存在关联的情况下,根据所述至少两个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中;
其中,每个任务集中的任务的执行,均依赖于所述任务相邻的上一个任务的执行状态;
所述至少一个主机,在一个主机执行至少两个任务集中的任务的情况下,所述主机同时执行至少两个所述任务集中的任务;
所述至少两个任务集完全相同或者不完全相同;
所述至少两个任务集不完全相同包括:所述至少两个任务集中的任务不完全相同,和/或所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。
上述方案中,所述至少一个主机还用于:在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集完全相同的情况下,所述至少两个主机同时执行所述任务集中的任务。
上述方案中,在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集不完全相同的情况下,所述至少两个主机中的第一主机,用于执行第一任务集中的任务;
所述至少两个主机中的第二主机,用于同时执行第二任务集中的任务;
所述至少两个任务集不完全相同包括:所述至少两个任务集中的任务不完全相同,和/或所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。
上述方案中,所述系统还包括:
设置单元,用于在所述至少两个任务集中的第一任务集中的第一任务与第二任务集中的第二任务的序号相同,且所述第一任务的执行需要依赖所述第二任务的执行结果的情况下,将所述第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务集中与所述第二任务对应的集合点设置空操作指令NOP任务。
本申请还提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现上述方案所述的任务执行方法。
本发明实施例提供的任务执行方法、系统及存储介质,通过在至少一个主机上执行至少两个任务集中的任务,使运维任务不仅仅局限于一个主机执行两个任务集中的任务,提升了运维指令统一下发的情况下,运维任务的执行效率;在运维指令中包含至少两个任务集中的任务的情况下,可以使用至少一个主机执行至少两个任务集中的任务。在至少一个主机执行至少两个任务集中的任务,且所述至少两个任务集中的任务存在关联的情况下,通过引入集合点的方式,将存在关联的最小执行单元(任务)放置在集合点中,集合点中的任务均执行完成的情况下,下一个集合点中的任务才能开始执行,通过简单的方案解决了至少一个主机执行至少两个任务集中的任务,所述至少两个任务集中的任务之间存在关联的情况下,所述至少两个任务集中的任务执行的时序问题。
附图说明
图1为相关技术中一个主机执行一个任务集中的任务的可选结构示意图;
图2为本申请实施例提供的任务执行方法的可选流程示意图;
图3为本申请实施提供的一个主机执行两个任务集中的任务,且所述至少两个任务集完全相同的可选结构示意图;
图4为本申请实施提供的一个主机执行两个任务集中的任务的可选结构示意图;
图5为相关技术中两个主机串行执行两个任务集中的任务的结构示意图;
图6为本申请实施提供的两个主机并发执行两个任务集中的任务的可选结构示意图二;
图7为本申请实施提供的两个主机执行两个任务集中的任务的可选结构示意图;
图8为本申请实施例提供的一个主机执行两个任务集中的任务,将相同序号的任务划分到同一个集合点中的可选结构示意图;
图9为本申请实施例提供的两个主机执行两个任务集中的任务,将相同序号的任务划分到同一个集合点中的可选结构示意图;
图10为本申请实施例提供的一个主机执行两个任务集中的任务,在集合点中设置NOP任务的可选结构示意图;
图11为本申请实施例提供的两个主机执行两个任务集中的任务,在集合点中设置NOP任务的可选结构示意图;
图12为本申请实施例提供的任务执行方法的可选流程示意图;
图13为本申请实施例提供的两个主机执行四个任务集中的任务的可选结构示意图;
图14为本申请实施例提供的一种任务执行系统的可选结构示意图一;
图15为本申请实施例提供的一种任务执行系统的可选结构示意图二;
图16为本申请实施例提供的任务执行系统中主机的硬件组成结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
随着 DevOps运动的兴起,越来越多的运维自动化框架和工具随之出现。同时,由于SOA和微服务对业务组件的拆分越来越细,需要维护的主机的规模呈指数级增长;稍具规模的平台系统,会有500到2000台左右的主机,大型互联网平台的主机数量甚至达到了数十万台。
现有技术中,运维任务通常是由运维技术人员统一下发到指定主机,并通过编程的方式,使所述指定主机按照任务集中任务的序号顺序执行运维任务。包括:
一个主机执行一个任务集中的任务。图1示出了现有技术中,一个主机执行一个任务集中的任务的可选结构示意图。所述任务集中的任务之间存在关联,所述依赖关系可以包括:所述任务集中任一个任务需要在另一个任务执行完成的情况下才能执行。例如,图1中,第一任务集包括A1至A4四个任务,所述A1至A4的任务序号依次为1、2、3、4,A2、A3、A4的执行,均依赖于A2、A3、A4相邻的上一个任务的执行状态,即A2的执行依赖A1的执行状态、A3的执行依赖A2的执行状态、A4的执行依赖A3的执行状态。运维开始,第一主机按照任务集中A1至A4四个任务的任务序号依次执行A1至A4四个任务。
如果采用将存在关联的多个任务集中的运维任务下发到多台主机中,并由多台主机执行所述多个任务集中的运维任务的方案,需要单独编程,而且多台主机执行多个任务集中任务的方案工程量大,计算复杂。面对数量庞大的主机和繁杂的任务组件,如何提高运维任务的执行效率,是当前运维场景中经常碰到的难题。
基于目前运维任务执行方法中存在的问题,本申请实施例提供一种任务执行方法,能够解决现有技术方案中无法解决的技术难题和缺点。
图2示出了本申请实施例提供的一种任务执行方法的可选流程示意图,将根据各个步骤进行说明。
步骤S101,至少一个主机执行至少两个任务集中的任务。
在一些实施例中,所述任务集中包括至少一个任务,所述至少两个任务集中的任务的执行,均依赖于所述任务相邻的上一个任务的执行状态。
在另一些实施例中,所述上一个任务的执行状态包括:上一个任务执行完成、上一个任务执行过程中得到下一个任务执行所需要的结果或者上一个任务未执行。
在一些实施例中,所述至少一个主机按照所述至少两个任务集中的任务的序号,依次执行所述至少两个任务集中的任务。
在一些实施例中,所述至少一个主机执行至少两个任务集中的任务,包括:所述至少两个任务集完全相同,相当于,一个主机执行一个任务集中的任务,且所述任务集的任务需要执行至少两次。运维开始,第一主机按照所述任务集中任务的序号,依次执行所述任务集中的任务。
在一些实施例中,所述至少两个任务集完全相同包括:所述至少两个任务集中的任务完全相同,且所述至少两个任务集中一个任务集中的任务的序号与另一个任务集中任务的序号完全相同。例如第五任务集中的4个任务按照执行顺序依次为:D1、D2、D3、D4;第六任务集中的4个任务按照执行顺序依次为:D1、D2、D3、D4。则第五任务集和第六任务集是完全相同的任务集,可以看做主机多次执行同一个任务集。
在另一些实施例中,所述主机按照至少一个任务线程执行所述至少两个任务集中的任务,每一个任务线程上只有一个任务集。由于所述至少一个任务线程上的任务集都是相同的,所述主机可以乱序地启动所述至少一个任务线程上的任务。
图3示出了在一个主机执行两个任务集中的任务,且所述至少两个任务集完全相同的可选结构示意图,将结合步骤S101进行说明。
在现有技术中,所述一个主机执行一个任务集中的任务,所述任务集中的任务需要执行至少两次,通常采用串行执行的方式,即:第一主机执行第一任务集中的任务后,再一次开始执行第一任务集中的任务。也就是,通过人为的方式,在第一主机两次执行第一任务集中的任务顺序上进行了隔离。所述串行执行可以包括:一个主机按照所述一个任务集的顺序执行所述任务集中的任务,在一个主机全部执行完一个任务集中的任务之后,重新开始执行所述任务集中的任务。
但本申请实施例中在需要一个主机至少两次执行一个任务集中的任务的情况下,将一个主机串行执行的方式改为并发执行。
在一些实施例中,所述并发执行可以包括:一个主机在相同的时间段内,在至少一个任务线程上分别执行所述一个任务集中的任务。
在一些实施例中,一个主机在所述主机内部两个或两个以上任务线程上同时执行第一任务集中的任务的情况下,在具体实施时,可以包括:第一主机同时执行所述两个或两个以上任务线程上的第一任务集中的任务,或者,第一主机不同时执行所述两个或两个以上任务线程上的第一任务集中的任务。
在一些实施例中,所述第一主机同时执行所述两个或两个以上任务线程上的第一任务集中的任务包括:第一主机同时开始执行所述两个或两个以上任务线程上的第一任务集中的第一任务,并在所述两个或两个以上任务线程上第一任务集中的第一任务均执行完成的情况下,执行所述两个或两个以上任务线程上第一任务集中的第二任务,直至所述两个或两个以上任务线程上第一任务集中全部任务被执行完,运维结束。
在一些实施例中,所述第一主机不同时执行所述两个或两个以上任务线程上的第一任务集中的任务包括:运维开始,第一主机执行所述两个或两个以上任务线程中第一任务线程上的第一任务集中的第一任务,暂不执行所述两个或两个以上任务线程中第二任务线程上的第一任务集中的第一任务,在执行完第一任务线程上的第一任务集中除最后一个任务以外的任一个任务的情况下,开始执行所述第二任务线程上的第一任务集中的第一任务,直至所述两个或两个以上任务线程上第一任务集中全部任务被执行完,运维结束。
如图3所示,第一主机按照两个任务线程分别执行所述第一任务集中的任务。第一任务集中,包括A1至A4四个任务,所述A1至A4的任务序号依次为1、2、3、4,A2、A3、A4的执行,均依赖于A2、A3、A4相邻的上一个任务的执行状态,即A2的执行依赖A1的执行状态、A3的执行依赖A2的执行状态、A4的执行依赖A3的执行状态。运维开始,第一主机按照第一任务集中A1至A4四个任务的任务序号依次执行第一任务线程上的A1至A4四个任务以及第二任务线程上的A1至A4四个任务。
由于至少一个任务集中的任务的执行,均依赖于所述任务相邻的上一个任务的执行状态,所述执行状态包括:上一个任务执行完成、上一个任务执行过程中得到下一个任务执行所需要的结果或者上一个任务未执行。以图3中,所述第一主机执行第一任务线程上的第一任务集为例,对任务集中任务的执行依赖于所述任务相邻的上一个任务的执行状态进行说明:
在所述执行状态为上一个任务执行完成的情况下,第一主机按照A1至A4,四个任务的任务序号,执行所述A1至A4,四个任务。在A1执行完成的情况下,执行A2;在A2执行完成的情况下,执行A3;在A3执行完成的情况下,执行A4;在A4执行完成的情况下,第一任务集中的全部任务均被执行完成,运维结束。
在所述执行状态为上一个任务执行过程中得到下一个任务执行所需要的结果的情况下,第一主机按照A1至A4,四个任务的任务序号,执行所述A1至A4,四个任务。在A1执行过程中,得到执行A2所需要的结果的情况下,执行A2;在A2执行过程中,得到执行A3所需要的结果的情况下,执行A3;在A3执行过程中,得到执行A4所需要的结果的情况下,执行A4;在A4执行完成的情况下,第一任务集中的全部任务均被执行完成,运维结束。
第一任务线程上的A1至A4四个任务与第二任务线程上的A1至A4四个任务之间不存在关联的情况下,所述第一主机可以乱序地启动第一任务线程上的A1至A4四个任务和第二任务线程上的A1至A4四个任务。例如,所述第一主机执行第一任务线程上的A3的同时,执行第二任务线程上的A2。
在现有技术中,所述一个主机执行至少两个任务集中的任务,且所述至少两个任务集为不同的任务集的情况下,通常采用串行执行的方式,即:第一主机执行第一任务集中的任务后,才开始执行第二任务集中的任务。也就是,通过人为的方式,在第一主机执行第一任务集中的任务和第二任务集中的任务的顺序上进行了隔离,所述串行执行可以包括:一个主机按照所述至少一个任务集的顺序执行所述任务集中的任务,在一个主机全部执行完一个任务集中的任务之后,才开始执行另一个任务集中的任务。
但本申请实施例中在需要一个主机执行至少两个任务集中的任务的情况下,将一个主机串行执行的方式改为并行执行。
所述并行执行可以包括:一个主机在相同的时间段内,分别执行所述至少两个任务集中的任务,且所述至少两个任务集为不同的任务集。例如,运维开始,第一主机按照所述至少两个任务集中第一任务集中任务的序号和第二任务集中任务的序号,同时执行所述第一任务集中的任务和所述第二任务集中的任务。
在一些实施例中,所述至少两个任务集不完全相同包括:所述至少两个任务集中的任务不完全相同,和/或所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。所述至少两个任务集中的任务不完全相同包括:所述至少两个任务集中的任务有相同的任务,也有不同的任务,例如第五任务集中的4个任务按照执行顺序依次为:D1、D2、D3、D4;第六任务集中的4个任务按照执行顺序依次为:D1、D2、D5、D4。则所述第五任务集和所述第六任务集为不同的任务集。所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。例如第五任务集中的4个任务按照执行顺序依次为:D1、D2、D3、D4;第六任务集中的4个任务按照执行顺序依次为:D1、D3、D2、D4。在第五任务集中,D2的序号为2;在第六任务集中,D2的序号为3,则所述第五任务集和所述第六任务集为不同的任务集。
图4示出了一个主机执行两个任务集中的任务的可选结构示意图,将结合步骤S101进行说明。
如图4所示,所述两个任务集包括:第一任务集和第二任务集。第一任务集中,包括A1至A4四个任务。第二任务集中,包括B1至B4四个任务,所述B1至B4的任务序号依次为1、2、3、4,B2、B3、B4的执行,均依赖于B2、B3、B4相邻的上一个任务的执行状态,即B2的执行依赖B1的执行状态、B3的执行依赖B2的执行状态、B4的执行依赖B3的执行状态。
在第一任务集上的任务与第二任务集上的任务之间不存在关联的情况下,所述第一主机可以乱序地启动任一个任务集上的任务。例如,所述第一主机可以先执行第一任务集中的A1,而不去执行第二任务集中的B1,在执行到第一任务集中任一个任务的情况下,开始执行第二任务集中的B1。
在一些实施例中,所述依赖关系还可以包括:至少两个任务集中的任务之间存在关联,即第一任务集中至少一个任务需要在第二任务集中至少一个任务完成的情况下,才能执行。举例来说,若图4中第一任务集中的任务与第二任务集中的任务之间存在关联,可以为:A3的执行依赖B2的执行状态或者B2的执行依赖A1的执行状态。
在一些实施例中,所述至少一个主机执行至少一个任务集中的任务,包括:至少两个主机执行两个任务集中的任务,且所述两个任务集完全相同。
图5示出了现有技术中两个主机串行执行两个任务集中的任务的结构示意图。
如图5所示,所述两个任务集中的任务以及所述任务的序号均完全相同,为同一个任务集。在第一主机完成第一任务集中的任务的执行之后,第二主机开始执行第一任务集中的任务。也就是,通过人为的方式,在第一主机和第二主机执行顺序上进行了隔离,所述串行执行可以包括:这两个主机按照顺序执行所述任务集中的任务,在一个主机全部执行完所述任务集中的任务之后,另一个主机开始执行所述任务集中的任务。
但本申请实施例中在需要两个主机执行两个任务集中的任务,所述两个任务集完全相同的情况下,将两个主机串行执行的方式改为并发执行。
所述并发执行可以包括:两个主机在相同的时间段内,分别执行所述任务集中的任务。
图6示出了两个主机并发执行两个任务集中的任务的可选结构示意图。
如图6所示,所述两个任务集为完全相同的第一任务集,所述两个任务集中的任务以及所述任务的序号均完全相同。所述第一任务集中,包括A1至A4,四个任务。由于第一主机执行的第一任务集上的任务与第二主机执行的第一任务集上的任务之间不存在关联,所述第一主机和第二主机可以乱序地执行第一任务集上的任务。例如,所述第一主机可以先执行第一任务集中的A1,而所述第二主机不去执行所述第一任务集中的A1,在所述第一主机执行到第一任务集中任一一个任务的情况下,所述第二主机开始执行第一任务集中的A1。
在一些实施例中,所述至少一个主机执行至少两个任务集中的任务,包括:至少两主机执行至少两个任务集中的任务。运维开始,所述至少两个主机中的第一主机执行第一任务集中的任务;所述至少两个主机中的第二主机,同时执行第二任务集中的任务;所述第一任务集和所述第二任务集,为所述至少两个任务集中不同的任务集。
图7示出了两个主机执行两个任务集中的任务的可选结构示意图。
现有技术中,至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集为不同的任务集的情况下,通常是采用串行执行的方式,即:第一主机执行完第一任务集中的任务后,第二主机才开始执行所述第二任务集中的任务。本申请实施例提供任务执行方法中,在需要至少两个主机执行至少两个任务集中的任务时,采用至少两个主机并行执行所述至少两个任务集中的任务的方案,例如:在同一个时间段,第一主机执行第一任务集中的任务,以及第二主机执行第二任务集中的任务。
如图7所示,第一主机执行第一任务集中,任务序号为A1至A4的四个任务;第二主机执行第一任务集中,任务序号为B1至B4的四个任务。第一主机按照第一任务集中任务的序号,第二主机按照第二任务集中任务的序号,同时执行所述第一任务集和所述第二任务集中的任务。
在一些实施例中,所述第一主机按照第一任务集中任务的序号,第二主机按照第二任务集中任务的序号,同时执行所述第一任务集和所述第二任务集中的任务,包括:第一主机和第二主机同一段时间内,分别执行所述第一任务集中的任务和所述第二任务集中的任务,但是执行任务的序号不一定是相同的。例如,第一主机执行A3时,第二主机执行B2。或者,第一主机和第二主机同一段时间内,分别执行所述第一任务集中的任务和所述第二任务集中的任务,并且执行任务的序号是同步的。例如,第一主机执行A1时,第二主机执行B1;第一主机执行A2时,第二主机执行B2。
步骤S102,根据所述至少两个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中,所述集合点内所有任务均执行完成之后,所述至少一个主机执行与所述集合点相对应的下一个集合点内的任务。
在一些实施例中,至少一个主机或者服务器根据所述至少两个任务集中的任务的序号,将所述至少两个任务集中,相同序号的任务划分到同一个集合点中,所述集合点内所有任务均执行完成之后,所述至少一个主机执行与所述集合点相对于的下一个集合点内的任务。所述服务器与所述至少一个主机在同一个任务执行系统中。所述至少两个任务集可以为完全相同的任务集,也可以为不完全相同的任务集。
图8示出了一个主机执行两个任务集中的任务,将相同序号的任务划分到同一个集合点中的可选结构示意图,将结合步骤S102进行说明。
如图8所示,所述第一任务集与所述第二任务集是完全不同的两个任务集。运维开始,第一主机按照所述至少两个任务集中第一任务集中任务的序号和第二任务集中任务的序号,同时执行所述第一任务集中的任务和所述第二任务集中的任务。由于第一任务集与第二任务集之间存在关联,因此,将所述第一任务集与第二任务集中,相同序号的任务划分到同一个集合点中。
第一任务集中,包括A1至A4四个任务,所述A1至A4的任务序号依次为1、2、3、4;第二任务集中,包括B1至B4四个任务,所述B1至B4的任务序号依次为1、2、3、4。将A1和B1划分到第一集合点中;将A2和B2划分到第二集合点中;将A3和B3划分到第三集合点中;将A4和B4划分到第四集合点中。
第一主机与第二主机将同一个集合点中的任务全部执行完成后,才能执行下一个集合点中的任务。例如,第一主机执行第二集合点中A2,同时,第一主机执行第二集合点中的B2,在第一主机执行完A2之后,需要等待第一主机执行完B2,第一主机才能执行第三集合点中的A3和B3。
图9示出了两个主机执行两个任务集中的任务,将相同序号的任务划分到同一个集合点中的可选结构示意图,将结合步骤S102进行说明。
如图9所示,所述第一任务集与所述第二任务集是完全不同的两个任务集。运维开始,第一主机按照第一任务集中任务的序号执行所述第一任务集中的任务,同时第二主机按照第二任务集中任务的序号执行所述第二任务集中的任务。由于第一任务集与第二任务集之间存在关联,因此,第一主机和第二主机,或者服务器将所述第一任务集与第二任务集中,相同序号的任务划分到同一个集合点中。
第一主机与第二主机将同一个集合点中的任务全部执行完成后,才能执行下一个集合点中的任务。例如,第一主机执行第二集合点中A2,同时,第二主机执行第二集合点中的B2,在第一主机执行完A2之后,需要等待第二主机执行完B2,第一主机和第二主机才能分别执行第三集合点中的A3和B3。
在一些实施例中,在所述至少两个任务集中的第一任务集中的第一任务与第二任务集中的第二任务的序号相同,且所述第一任务的执行需要依赖所述第二任务的执行结果的情况下,还包括步骤S103。
步骤S103,将所述第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务集中与所述第二任务对应的集合点设置NOP任务。
在一些实施例中,在第一任务集中的第一任务的执行需要依赖第二任务集中的第二任务的执行结果,且所述第一任务和所述第二任务在同一个集合点内的情况下,将第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务集中与所述第二任务对应的集合点设置NOP任务。
图10示出了一个主机执行两个任务集中的任务,在集合点中设置NOP任务的可选结构示意图,将结合步骤S103与图8进行说明。
如图8所示,运维开始,第一主机按照所述至少两个任务集中第一任务集中任务的序号和第二任务集中任务的序号,同时执行所述第一任务集中的任务和所述第二任务集中的任务。由于第一任务集与第二任务集之间存在关联,因此,将所述第一任务集与第二任务集中,相同序号的任务划分到同一个集合点中。第一任务集中,包括A1至A4四个任务,所述A1至A4的任务序号依次为1、2、3、4;第二任务集中,包括B1至B4四个任务,所述B1至B4的任务序号依次为1、2、3、4。将A1和B1划分到第一集合点中;将A2和B2划分到第二集合点中;将A3和B3划分到第三集合点中;将A4和B4划分到第四集合点中。
如图10所示,A2的执行,需要依赖B2的执行结果,但是所述A2和所述B2均在第二集合点内;因此,将A2的集合点移动至B2的集合点之后,即将A2移动至第三集合点之后,依次将A2之后的A3和A4任务的集合点,向后移动。同时,在第二集合点中,原A2对应的集合点,设置NOP任务。第一主机执行完B2,可以根据B2的执行结果执行A2。
A2及A2之后的任务的集合点向后移动后,A2与B3在第三集合点中,A3与B4在第四集合点中,A4在第五集合点中。B4的执行需要依赖A3的执行结果,但A3与B4均在第四集合点中,因此,第一主机将B4任务的集合点向后移动,并在第四集合点中,原B4任务对应的集合点,设置NOP任务,使A4任务和B4任务在第五集合点内,A3在第四集合点内,A3执行完成,第一主机可以根据A3的执行结果,执行B4任务。
图11示出了两个主机执行两个任务集中的任务,在集合点中设置NOP任务的可选结构示意图,将结合步骤S103与图9进行说明。
如图9所示,运维开始,第一主机按照第一任务集中任务的序号执行所述第一任务集中的任务,同时第二主机按照第二任务集中任务的序号执行所述第二任务集中的任务。由于第一任务集与第二任务集之间存在关联,因此,将所述第一任务集与第二任务集中,相同序号的任务划分到同一个集合点中。
第一主机与第二主机将同一个集合点中的任务全部执行完成后,才能执行下一个集合点中的任务。例如,第一主机执行第二集合点中A2,同时,第二主机执行第二集合点中的B2;第一主机执行完A2,需要等待第二主机执行完B2,第一主机和第二主机才能分别执行第三集合点中的A3和B3。
如图11所示,A2的执行,需要依赖B2的执行结果,但是所述A2和所述B2均在第二集合点内;因此,将A2的集合点移动至B2的集合点之后,即将A2移动至第三集合点之后,依次将A2之后的A3和A4任务的集合点,向后移动。同时,在第二集合点中,在原A2对应的集合点设置NOP任务。第二主机执行完B2,第一主机可以根据B2的执行结果,执行A2。
A2以及A2后面的任务的集合点向后移动后,A2与B3在第三集合点中,A3与B4在第四集合点中,A4在第五集合点中。B4的执行需要依赖A3的执行结果,但A3与B4均在第四集合点中,因此,第一主机将B4任务的集合点向后移动,并在第四集合点中,原B4任务对应的集合点,设置NOP任务,使A4任务和B4任务在第五集合点内,A3在第四集合点内,A3执行完成,第二主机可以根据A3的执行结果,执行B4任务。
如此,通过在至少一个主机上执行至少两个任务集中的任务,使运维任务不仅仅局限于一个主机执行一个任务集中的任务,提升了运维指令统一下发的情况下,运维任务的执行效率;在运维指令中包含至少两个任务集中的任务的情况下,可以使用至少一个主机执行至少两个任务集中的任务,而不必如现有技术中,由一个主机执行一个任务集中的任务。并且,本申请实施例中,在至少一个主机执行至少两个任务集中的任务,且所述至少两个任务集中的任务存在关联的情况下,通过引入集合点,设置NOP任务的操作。将最小执行单元(任务)放置在集合点中,集合点中的任务均执行完成的情况下,下一个集合点中的任务才能开始执行,通过简单的方案解决了至少一个主机执行至少两个任务集中的任务,所述至少两个任务集中的任务之间存在关联的问题。最后,在相关技术中,都是依靠人工干预,梳理任务集之间的依赖关系,将梳理依赖关系后的任务集下发到指定主机。但是在主机执行任务集中的任务的过程中,可能会出现运维人员干预时考虑不足,任务集之间依赖关系的梳理不完善,导致任务集执行过程中出现中断的窘境。本申请实施例通过将主机执行任务的方案和运维业务逻辑进行分离,实现了统一的至少两个主机执行至少两个任务集中任务的方案模型,让运维人员摆脱了人工干预的窘境,将更多的精力关注于运维任务的落地上。
下面,以两个主机执行四个任务集中的任务为例,对上述S101至S103的一种任务执行方法进行详细说明。图12示出了本申请实施例提供的一种任务执行方法的可选流程示意图,将根据各个步骤进行说明。
步骤S201,两个主机执行四个任务集中的任务。
在现有技术中,所述两个主机执行四个任务集中的任务,通常采用串行执行的方式,即:第一主机执行第一任务集中的任务后,执行第二任务集中的任务;第一主机全部执行完第一任务集中的任务和第二任务集中的任务后,第二主机开始执行第三任务集中的任务,在第二主机执行第三任务集中的任务后,第二主机执行第四任务集中的任务。也就是通过人为的方式,在第一主机和第二主机执行第一任务集中的任务、第二任务集中的任务、第三任务集中的任务和第四任务集中的任务的顺序上进行了隔离,但本申请实施例中在需要两个主机执行四个任务集中的任务的情况下,将两个主机串行执行的方式改为并行执行。
图13示出了两个主机执行四个任务集中的任务的可选结构示意图,将结合步骤S201至步骤S203进行说明。
如图13所示,两个主机包括:第一主机和第二主机;四个任务集包括:第一任务集、第二任务集、第三任务集和第四任务集。
第一任务集中,包括A1至A4,四个任务,所述A1至A4的任务序号依次为1、2、3、4,A2、A3、A4的执行,均依赖于A2、A3、A4相邻的上一个任务的执行状态,即A2的执行依赖A1的执行状态、A3的执行依赖A2的执行状态、A4的执行依赖A3的执行状态。第二任务集中,包括B1至B4四个任务,所述B1至B4的任务序号依次为1、2、3、4,B2、B3、B4的执行,均依赖于B2、B3、B4相邻的上一个任务的执行状态。第三任务集中,包括C1至C4四个任务,所述C1至C4的任务序号依次为1、2、3、4,C2、C3、C4的执行,均依赖于C2、C3、C4相邻的上一个任务的执行状态。第四任务集中,包括D1至D4四个任务,所述D1至D4的任务序号依次为1、2、3、4,D2、D3、D4的执行,均依赖于D2、D3、D4相邻的上一个任务的执行状态。
运维开始,第一主机按照第一任务集中任务的序号和第二任务集中任务的序号,执行所述第一任务集中的任务和所述第二任务集中的任务,同时,第二主机按照第三任务集中任务的序号和第四任务集中任务的序号,执行所述第三任务集中的任务和所述第四任务集中的任务。
所述第一任务集中的任务、第二任务集中的任务、第三任务集中的任务和第四任务集中的任务存在关联的情况下,还包括步骤S202。
步骤S202,根据所述四个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中,所述集合点内所有任务均执行完成之后,所述第一主机和所述第二主机执行与所述集合点相对应的下一个集合点内的任务。
如图13所示,第一任务集中,包括A1至A4四个任务,所述A1至A4的任务序号依次为1、2、3、4;第二任务集中,包括B1至B4四个任务,所述B1至B4的任务序号依次为1、2、3、4;第三任务集中,包括C1至C4四个任务,所述C1至C4的任务序号依次为1、2、3、4;第四任务集中,包括D1至D4四个任务,所述D1至D4的任务序号依次为1、2、3、4。将A1、B1、C1和D1划分到第一集合点中;将A2、B2、C2和D2划分到第二集合点中;将A3、B3、C3和D3划分到第三集合点中;将A4、B4、C4和D4划分到第四集合点中。
第一主机与第二主机将同一个集合点中的任务全部执行完成后,才能执行下一个集合点中的任务。例如,第一主机执行第一集合点中A1和B1,同时,第二主机执行第一集合点中的C1和D1任务,在第一主机执行完A1和B1之后,需要等待第二主机执行完C1和D1任务,第一主机和第二主机才能执行第二集合点中的A2、B2、C2和D2任务。
在一些实施例中,在所述四个任务集中的任一个任务集中的第一任务与除所述任务集以外的其他任务集中的第二任务的序号相同,且所述第一任务的执行需要依赖所述第二任务的执行结果的情况下,还包括步骤S203。
步骤S203,将所述第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务所在的任务集中与所述第二任务对应的集合点设置NOP任务。
如图13所示,运维开始,第一主机按照第一任务集中任务的序号和第二任务集中任务的序号,同时执行所述第一任务集中的任务和所述第二任务集中的任务;第二主机按照第三任务集中任务的序号和第四任务集中任务的序号,同时执行所述第三任务集中的任务和所述第四任务集中的任务。
B1的执行,需要依赖A1的执行结果,但是所述A1和所述B1均在第一集合点内;因此,将B1的集合点移动至A1的集合点之后,即将B1移动至第二集合点中,并依次将B1之后的B2、B3和B4的集合点,依次向后移动。同时,在第一集合点中,原B1对应的集合点,设置NOP任务。第一主机执行A1后,可以根据A1的执行结果执行B1。
C2的执行,需要依赖A1的执行结果,但所述A1在第一集合点内,所述C2在第二集合点内,所述第一集合点在所述第二集合点之前,因此,第一主机不需要额外的操作,在第一集合点中的全部任务执行完成,第二主机可以根据A1的执行结果执行C2。
A2的执行,需要依赖B1的执行结果,但是为了使B1能够依赖A1的执行结果执行,将B1的集合点移动至第二任务集合点,与A2的集合点相同,即所述A2和所述B1均在第二集合点内;因此,将A2的集合点移动至B1的集合点之后,即将A2移动至第三集合点中,并依次将A2之后的A3和A4任务的集合点,向后移动。同时,在第二集合点中,原A2对应的集合点,设置NOP任务。第一主机执行完B1后,第一主机可以根据B1的执行结果,执行A2。
D3的执行,需要依赖C3的执行结果,但是所述C3和所述D3均在第三集合点内;因此,将D3的集合点移动至C3的集合点之后,即将D3移动至第四集合点中,并依次将D3之后的D4任务的集合点,向后移动。同时,在第一集合点中,原D3对应的集合点,设置NOP任务。第二主机执行完C3后,可以根据C3的执行结果执行D3。
C4的执行,需要依赖B2和A3的执行结果,B2在第三集合点内,A3在第四集合点内,C4也在第四集合点内;因此,将C4的集合点移动至A3的集合点之后,即将C4移动至第五集合点中。同时在第四集合点中,原C4对应的集合点,设置NOP任务。第一主机执行A3后,可以根据A3的执行结果与B2的执行结果执行C4。
如此,通过在两个主机上执行四个任务集中的任务,使运维任务不仅仅局限于一个主机执行一个任务集中的任务,提升了运维指令统一下发的情况下,运维任务的执行效率;在运维指令中包含四个任务集中的任务的情况下,可以使用两个主机分别执行两个任务集中的任务,而不必如现有技术中,由一个主机执行一个任务集中的任务。并且,本申请实施例中,在两个主机执行两个任务集中的任务,且所述两个任务集中的任务存在关联的情况下,通过引入集合点,设置NOP任务的操作。将最小执行单元(任务)放置在集合点中,集合点中的任务均执行完成的情况下,下一个集合点中的任务才能开始执行,通过简单的方案解决了两个主机执行两个任务集中的任务,所述两个任务集中的任务之间存在关联的情况下,所述任务执行的时序的问题。最后,在相关技术中,都是依靠人工干预,梳理任务集之间的依赖关系,将梳理依赖关系后的任务集下发到指定主机。但是在主机执行任务集中的任务的过程中,可能会出现运维人员干预时考虑不足,任务集之间依赖关系的梳理不完善,导致任务集执行过程中出现中断的窘境。本申请实施例通过将主机执行任务的方案和运维业务逻辑进行分离,实现了统一的至少两个主机执行至少两个任务集中任务的方案模型,让运维人员摆脱了人工干预的窘境,将更多的精力关注于运维任务的落地上。
图14示出了本申请实施例提供的任务执行系统的可选结构示意图一,将根据各个步骤进行说明。
至少一个主机,用于执行至少两个任务集中的任务;所述至少一个主机包括:主机401至主机40N。
其中,所述至少两个任务集中的任务的执行,均依赖于所述任务相邻的上一个任务的执行状态。
所述至少一个主机还用于:在一个主机执行至少两个任务集中的任务,且所述至少两个任务集中的任务以及所述任务的序号完全相同的情况下,所述主机同时执行至少两次所述任务集中的任务。
所述至少一个主机还用于:在一个主机执行至少两个任务集中的任务,且所述至少两个任务集中的任务和/或所述任务的序号不完全相同的情况下,所述主机同时执行所述至少两个任务集中的任务。
所述至少一个主机还用于:在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集中的任务以及所述任务的序号完全相同的情况下,所述至少两个主机同时执行所述任务集中的任务。
在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集中的任务和/或所述任务的序号不完全相同的情况下,所述至少两个主机中的主机401,用于执行第一任务集中的任务;
所述至少两个主机中的主机402,用于同时执行第二任务集中的任务;
所述第一任务集和所述第二任务集,为所述至少两个任务集中不同的任务集。
在一些实施例中,所述主机包括划分单元4011和设置单元4012。
划分单元4011,用于在所述至少两个任务集中的任务之间存在关联的情况下,根据所述至少两个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中。
所述至少一个主机,还用于在所述集合点内所有任务均执行完成之后,执行与所述集合点相对应的下一个集合点内的任务。
设置单元4012,用于在所述至少两个任务集中的第一任务集中的第一任务与第二任务集中的第二任务的序号相同,且所述第一任务的执行需要依赖所述第二任务的执行结果的情况下,将所述第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务集中与所述第二任务对应的集合点设置空操作指令NOP任务。
在另一些实施例中,所述系统还包括:服务器500,所述服务器包括划分单元5021和设置单元5022。图15示出了本申请实施例提供的任务执行系统的可选结构示意图二,将根据各个步骤进行说明。
至少一个主机,用于执行至少两个任务集中的任务;所述至少一个主机包括:主机5011至主机501N。
其中,所述至少两个任务集中的任务的执行,均依赖于所述任务相邻的上一个任务的执行状态。
所述至少一个主机还用于:在一个主机执行至少两个任务集中的任务,且所述至少两个任务集完全相同的情况下,所述主机同时执行至少两个所述任务集中的任务。
所述至少一个主机还用于:在一个主机执行至少两个任务集中的任务,且所述至少两个任务集不完全相同的情况下,所述主机同时执行所述至少两个任务集中的任务;所述至少两个任务集不完全相同包括:所述至少两个任务集中的任务不完全相同,和/或所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。
所述至少一个主机还用于:在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集完全相同的情况下,所述至少两个主机401同时执行所述任务集中的任务。
在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集不完全相同的情况下,所述至少两个主机中的主机5011,用于执行第一任务集中的任务;
所述至少两个主机中的主机5012,用于同时执行第二任务集中的任务;
所述第一任务集和所述第二任务集,为所述至少两个任务集中不同的任务集。
在一些实施例中,所述主机包括划分单元5021和设置单元5022。
划分单元5021,用于在所述至少两个任务集中的任务之间存在关联的情况下,根据所述至少两个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中。
所述至少一个主机,还用于在所述集合点内所有任务均执行完成之后,执行与所述集合点相对应的下一个集合点内的任务。
设置单元5022,用于在所述至少两个任务集中的第一任务集中的第一任务与第二任务集中的第二任务的序号相同,且所述第一任务的执行需要依赖所述第二任务的执行结果的情况下,将所述第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务集中与所述第二任务对应的集合点设置空操作指令NOP任务。
图16为本申请实施例提供的任务执行系统中主机的硬件组成结构示意图,主机600包括:至少一个处理器601、存储器602和至少一个网络接口604。主机600中的各个组件通过总线系统605耦合在一起。可理解,总线系统605用于实现这些组件之间的连接通信。总线系统605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统605。
可以理解,存储器602可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(ProgrammableRead-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random AccessMemory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CompactDisc Read-Only Memory,CD-ROM);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RandomAccess Memory,SRAM)、同步静态随机存取存储器(Synchronous Static Random AccessMemory,SSRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、同步动态随机存取存储器(Synchronous Dynamic Random Access Memory,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced Synchronous DynamicRandom Access Memory,ESDRAM)、同步连接动态随机存取存储器(SyncLink DynamicRandom Access Memory,SLDRAM)、直接内存总线随机存取存储器(Direct Rambus RandomAccess Memory,DRRAM)。本发明实施例描述的存储器602旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器602用于存储各种类型的数据以支持主机600的操作。这些数据的示例包括:用于在主机600上操作的任何计算机程序,如应用程序6022。实现本发明实施例方法的程序可以包含在应用程序6022中。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,主机600可以被一个或多个应用专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、DSP、可编程逻辑器件(Programmable LogicDevice,PLD)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、FPGA、通用处理器、控制器、MCU、MPU、或其他电子元件实现,用于执行前述方法。
本申请实施例还提供了一种存储介质,用于存储计算机程序。
可选的,该存储介质可应用于本申请实施例中的终端设备,并且该计算机程序使得计算机执行本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种任务执行方法,其特征在于,所述方法包括:
至少两个主机执行至少两个任务集中的任务;
在所述至少两个任务集中的任务之间存在关联的情况下,根据所述至少两个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中,所述集合点内所有任务均执行完成之后,所述至少两个主机执行与所述集合点相对应的下一个集合点内的任务;
其中,每个任务集中的任务的执行,均依赖于所述任务与所述任务相邻的上一个任务的执行状态;
所述方法还包括:
在所述至少两个任务集中的第一任务集中的第一任务与第二任务集中的第二任务的序号相同,且所述第一任务的执行需要依赖所述第二任务的执行结果的情况下,将所述第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务集中与所述第二任务对应的集合点设置空操作指令NOP任务。
2.根据权利要求1所述的方法,其特征在于,
在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集完全相同的情况下,所述至少两个主机同时执行所述任务集中的任务。
3.根据权利要求1所述的方法,其特征在于,
在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集不完全相同的情况下,所述至少两个主机中的第一主机执行第一任务集中的任务;
所述至少两个主机中的第二主机,同时执行第二任务集中的任务;
所述至少两个任务集不完全相同包括:所述至少两个任务集中的任务不完全相同,和/或所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。
4.一种任务执行系统,其特征在于,所述系统包括:
至少两个主机,用于执行至少两个任务集中的任务;
划分单元,用于在所述至少两个任务集中的任务之间存在关联的情况下,根据所述至少两个任务集中的任务的序号,将相同序号的任务划分到同一个集合点中;
所述至少两个主机,还用于在所述集合点内所有任务均执行完成之后,执行与所述集合点相对应的下一个集合点内的任务;
其中,每个任务集中的任务的执行,均依赖于所述任务与所述任务相邻的上一个任务的执行状态;所述系统还包括:
设置单元,用于在所述至少两个任务集中的第一任务集中的第一任务与第二任务集中的第二任务的序号相同,且所述第一任务的执行需要依赖所述第二任务的执行结果的情况下,将所述第一任务的集合点移动至所述第二任务的集合点之后,并在所述第一任务集中与所述第二任务对应的集合点设置空操作指令NOP任务。
5.根据权利要求4所述的系统,其特征在于,所述至少两个主机还用于:
在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集完全相同的情况下,所述至少两个主机同时执行所述任务集中的任务。
6.根据权利要求4所述的系统,其特征在于,所述至少两个主机还用于:
在至少两个主机执行至少两个任务集中的任务,且所述至少两个任务集不完全相同的情况下,所述至少两个主机中的第一主机,用于执行第一任务集中的任务;
所述至少两个主机中的第二主机,用于同时执行第二任务集中的任务;
所述至少两个任务集不完全相同包括:所述至少两个任务集中的任务不完全相同,和/或所述至少两个任务集中一个任务集中任务的序号与另一个任务集中任务的序号不完全相同。
7.一种存储介质,存储有可执行程序,其特征在于,所述可执行程序被处理器执行时,实现权利要求1至3任一项所述的任务执行方法。
8.一种任务执行系统,包括至少两个主机,所述主机包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行如权利要求1至3任一项所述任务执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911279412.2A CN110968412B (zh) | 2019-12-13 | 2019-12-13 | 一种任务执行方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911279412.2A CN110968412B (zh) | 2019-12-13 | 2019-12-13 | 一种任务执行方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968412A CN110968412A (zh) | 2020-04-07 |
CN110968412B true CN110968412B (zh) | 2022-11-11 |
Family
ID=70034099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911279412.2A Active CN110968412B (zh) | 2019-12-13 | 2019-12-13 | 一种任务执行方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968412B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187958A (zh) * | 2019-06-04 | 2019-08-30 | 上海燧原智能科技有限公司 | 一种任务处理方法、装置、系统、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467415B (zh) * | 2010-11-03 | 2013-11-20 | 大唐移动通信设备有限公司 | 一种业务面任务处理方法及设备 |
WO2012138376A1 (en) * | 2011-04-02 | 2012-10-11 | Intel Corporation | Method and devices for determining parallelism of tasks of a program |
CN104021040B (zh) * | 2014-06-04 | 2017-09-26 | 河海大学 | 基于时间约束条件下的云计算关联任务调度方法和装置 |
CN109564525B (zh) * | 2016-06-28 | 2023-05-02 | 亚马逊技术有限公司 | 按需网络代码执行环境中的异步任务管理 |
CN109213587B (zh) * | 2018-09-12 | 2021-11-09 | 中国人民解放军战略支援部队信息工程大学 | GPU平台下的多Stream并行DAG图任务映射策略 |
-
2019
- 2019-12-13 CN CN201911279412.2A patent/CN110968412B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187958A (zh) * | 2019-06-04 | 2019-08-30 | 上海燧原智能科技有限公司 | 一种任务处理方法、装置、系统、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Fulfilling Task Dependence Gaps for Workflow Scheduling on Grids;Luiz F. Bittencourt;《2007 Third International IEEE Conference on Signal-Image Technologies and Internet-Based System》;20080903;全文 * |
基于DAG的异构多处理器平台低功耗调度研究;刘宸翰;《中国优秀硕士学位论文全文数据库信息科技辑》;20180715;第2018年卷(第7期);I137-29 * |
基于与或依赖图的多Agent系统任务分解算法;肖增良等;《计算机工程与设计》;20090128(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110968412A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2767667C (en) | Fault tolerant batch processing | |
US9594637B2 (en) | Deploying parallel data integration applications to distributed computing environments | |
US9483414B2 (en) | Ordered memory pages transmission in virtual machine live migration | |
EP3113020A1 (en) | Data processing device and method for processing serial tasks | |
CN110851246A (zh) | 一种批量任务处理方法、装置、系统及存储介质 | |
EP0847022A2 (en) | Method for designing an architectural system | |
CN111158680A (zh) | 一种页面构建的方法、装置、设备及存储介质 | |
CN110968412B (zh) | 一种任务执行方法、系统及存储介质 | |
CN113010276A (zh) | 一种任务调度方法、装置、终端设备及存储介质 | |
CN105068861A (zh) | 一种事务执行方法及装置 | |
CN113342512B (zh) | 一种io任务静默与驱动方法、装置及相关设备 | |
CN110737533B (zh) | 一种任务调度方法、装置及电子设备和存储介质 | |
CN103970658A (zh) | Pmon与内核版本兼容性测试的方法和装置 | |
CN112732367A (zh) | 事件流程的处理方法、装置、设备及可读存储介质 | |
CN111475998A (zh) | 延迟获取远程资源的电子设计自动化(eda)过程的混合执行 | |
US9336011B2 (en) | Server and booting method | |
CN117290113B (zh) | 一种任务处理方法、装置、系统和存储介质 | |
US10592212B2 (en) | System and method for software development based on procedures | |
KR20180044174A (ko) | 프로시저에 기반한 소프트웨어 개발을 위한 시스템 및 방법 | |
AU2014274491B2 (en) | Fault tolerant batch processing | |
CN106557359B (zh) | 一种任务调度方法及系统 | |
CN110716987A (zh) | 一种同步任务异步执行的方法和调度系统 | |
CN111858533A (zh) | 一种基于多线程技术的数据导入方法及系统 | |
CN117251298A (zh) | 一种流水线任务循环执行方法、系统、设备及介质 | |
JPS6057436A (ja) | 演算処理装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |