CN110928668B - 一种基于ZooKeeper实现云化任务编排调度的方法和系统 - Google Patents
一种基于ZooKeeper实现云化任务编排调度的方法和系统 Download PDFInfo
- Publication number
- CN110928668B CN110928668B CN201911248841.3A CN201911248841A CN110928668B CN 110928668 B CN110928668 B CN 110928668B CN 201911248841 A CN201911248841 A CN 201911248841A CN 110928668 B CN110928668 B CN 110928668B
- Authority
- CN
- China
- Prior art keywords
- task
- dependent
- tasks
- tree
- scheduling
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于ZooKeeper实现云化任务编排调度的方法,该方法包括:根据任务需求,在静态树上对任务进行云化切片配置,获得任务切片的配置信息;在任务树上对任务切片进行实例化、池化配置,获得任务切片的任务编排信息;在动态树上记录任务切片的运行状态;在控制树上记录任务切片的执行状态;根据任务编排信息调度任务切片,并执行调度后的任务切片,实现了任务的编排、调度和执行,并做到不需要人工干预,能够通过云化任务编排调度客户端实现任务的编排和调度,提高了批量任务的易用性和健壮性。
Description
技术领域
本发明涉及云化作业调度领域,尤其涉及一种基于ZooKeeper实现云化任务编排调度的方法和系统。
背景技术
随着云化技术的成熟,企业级的应用越来越多的向云化方向发展,这其中有着较多的云化下批处理任务的依赖调度。需要借助一些调度系统来实现云化作业调度,而现在的云化任务调度产品,只具备任务调度没有任务编排的能力。
目前主流的作业调度系统两项重要指标分析:
作业调度产品 | 任务编排 | 任务调度 |
Quartz | 不支持 | 支持 |
TBSchedule | 不支持 | 支持 |
Elastic-Job | 不支持 | 支持 |
Saturn | 不支持 | 支持 |
Antares | 不支持 | 支持 |
doWork | 不支持 | 支持 |
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种基于ZooKeeper实现云化任务编排调度的方法和系统。
本发明解决上述技术问题的技术方案如下:
一种基于ZooKeeper实现云化任务编排调度的方法,包括以下步骤:
S1,根据任务需求,在静态树上对所述任务进行云化切片配置,获得任务切片的配置信息;在任务树上对所述任务切片进行实例化、池化配置,获得所述任务切片的任务编排信息;在动态树上记录所述任务切片的运行状态;在控制树上记录所述任务切片的执行状态;所述任务包括:简单任务和依赖任务中至少一项;
S2,根据所述任务编排信息调度所述任务切片,并执行调度后的所述任务切片。
本发明的有益效果是:本申请方案通过在云化任务编排调度系统内,根据任务需求,在静态树上对所述任务进行云化切片配置,获得任务切片的配置信息;在任务树上对所述任务切片进行实例化、池化配置,获得所述任务切片的任务编排信息;根据所述任务编排信息调度所述任务切片,并执行调度后的所述任务切片,实现了任务的编排、调度和执行,并做到不需要人工干预,能够通过云化任务编排调度客户端实现任务的编排和调度,提高了批量任务的易用性和健壮性。
进一步地,当所述任务为简单任务时,S1具体包括:
在静态树中配置所述简单任务的并发数和配置执行所述简单任务的任务切片对应的业务参数;
在任务树中配置所述任务切片执行的进程信息,并配置所述简单任务的类型为0;
根据所述简单任务的并发数、所述简单任务的业务参数和所述简单任务的任务切片执行的进程信息,获得所述简单任务的任务编排信息;
所述任务树的类型包括:任务类型为0,表示调度可以直接执行,无依赖;任务类型为1,表示依赖调度,不能直接执行;任务类型为2,表示任务编排,任务间有依赖。
采用上述进一步方案的有益效果是:在实现简单任务的编排时,通过在静态树中配置任务的并发数和任务切片对应的业务参数,在任务树中配置任务切片执行的进程信息,并配置任务类型,以获得任务编排信息,根据任务编排信息实现简单任务的编排、调度和并行执行。
进一步地,当所述任务为依赖任务时,S1具体还包括:当所述任务为依赖任务时:
在静态树中配置所述依赖任务的并发数和配置执行所述依赖任务的任务切片对应的业务参数;
在任务树中配置所述依赖任务的任务切片执行的进程信息,并配置所述依赖任务的类型为1;
根据所述依赖任务的并发数、所述依赖任务的业务参数和所述依赖任务的任务切片执行的进程信息,获得所述依赖任务的任务编排信息;
在任务树中配置所述依赖任务的任务类别的编排依赖和配置所述依赖任务的类型为2,各所述依赖任务之间用第一预设符号分隔,使得各所述依赖任务依赖执行;或,设置任意两个以上的所述依赖任务并行执行,并用第二预设符号标记,使得各所述依赖任务在依赖中并发执行。
采用上述进一步方案的有益效果是:在实现依赖任务的编排时,通过在静态树中配置任务的并发数和任务切片对应的业务参数,在任务树中配置任务切片执行的进程信息,并配置任务类型,以获得任务编排信息,根据任务编排信息实现依赖任务的编排、调度和并行执行。
进一步地,所述S2具体包括:
S21,从任务树中获取任务编排信息,过滤掉任务类型为1的任务;
S21,根据任务编排信息对过滤后的任务进行调度,并执行所述过滤后的任务。
采用上述进一步方案的有益效果是:通过在任务树中的待执行任务信息中,过滤掉任务类型为1的任务,由于任务类型1的任务属于虚拟任务,过滤掉后,再执行依赖任务,能够节省系统资源,提高调度效率。
进一步地,所述根据任务编排信息对过滤后的任务进行调度,并执行所述过滤后的任务具体包括:
当调度任务为所述简单任务时,判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,完成本次所述简单任务的调度,执行所述简单任务;如果不一致,等待下一次调度;
当调度任务为所述依赖任务,判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,校验所述依赖任务的上一条任务切片是否执行完成,如果执行完成,判断控制树上是否存在相关记录,如果存在,执行所述依赖任务;
判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数,如果不一致,等待下一次调度。
采用上述进一步方案的有益效果是:调度、执行简单任务,通过判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,说明配置任务的并发数与已经调度的任务数量一致,说明调度任务达到目标,通过该判断,保证了配置的任务都已经调度,并执行,没有遗漏的部分,提高编排调度系统编排、调度任务的准确率。
调度、执行依赖任务,不仅要判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,来确认是否有遗漏部分,还需要判断在控制树上是否存在记录,来确认当前依赖任务的上一条任务是否执行,上一个任务执行完成,才调度当前依赖任务,并执行,上述判断过程,既保证了执行任务的完整性,还保证了依赖任务之间的依赖性。
本发明解决上述技术问题的另一种技术方案如下:
一种基于ZooKeeper实现云化任务编排调度的系统,包括:
任务编排中心系统、调度客户端装置和任务执行中心系统;
任务编排中心系统用于根据任务需求,在静态树上对所述任务进行云化切片配置,获得任务切片的配置信息;在任务树上对所述任务切片进行实例化、池化配置,获得所述任务切片的任务编排信息;在动态树上记录所述任务切片的运行状态;在控制树上记录所述任务切片的执行状态;所述任务包括:简单任务和依赖任务中至少一项;
调度客户端装置用于根据所述任务编排信息调度所述任务切片;
任务执行中心系统用于执行调度后的所述任务切片。
本发明的有益效果是:本申请方案通过在云化任务编排调度系统内,根据任务需求,在静态树上对所述任务进行云化切片配置,获得任务切片的配置信息;在任务树上对所述任务切片进行实例化、池化配置,获得所述任务切片的任务编排信息;根据所述任务编排信息调度所述任务切片,并执行调度后的所述任务切片,实现了任务的编排、调度和执行,并做到不需要人工干预,能够通过云化任务编排调度客户端实现任务的编排和调度,提高了批量任务的易用性和健壮性。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步地,任务编排中心系统具体用于当所述任务为简单任务时:
在静态树中配置所述简单任务的并发数和配置执行所述简单任务的任务切片对应的业务参数;
在任务树中配置所述任务切片执行的进程信息,并配置所述简单任务的类型为0;
根据所述简单任务的并发数、所述简单任务的业务参数和所述简单任务的任务切片执行的进程信息,获得所述简单任务的任务编排信息;
所述任务树的类型包括:任务类型为0,表示调度可以直接执行,无依赖;任务类型为1,表示依赖调度,不能直接执行;任务类型为2,表示任务编排,任务间有依赖。
采用上述进一步方案的有益效果是:在实现简单任务的编排时,通过在静态树中配置任务的并发数和任务切片对应的业务参数,在任务树中配置任务切片执行的进程信息,并配置任务类型,以获得任务编排信息,根据任务编排信息实现简单任务的编排、调度和并行执行。
进一步地,任务编排中心系统还具体用于当所述任务为依赖任务时,在静态树中配置所述依赖任务的并发数和配置执行所述依赖任务的任务切片对应的业务参数;
在任务树中配置所述依赖任务的任务切片执行的进程信息,并配置所述依赖任务的类型为1;
根据所述依赖任务的并发数、所述依赖任务的业务参数和所述依赖任务的任务切片执行的进程信息,获得所述依赖任务的任务编排信息;
在任务树中配置所述依赖任务的任务类别的编排依赖和配置所述依赖任务的类型为2,各所述依赖任务之间用第一预设符号分隔,使得各所述依赖任务依赖执行;或,设置任意两个以上的所述依赖任务并行执行,并用第二预设符号标记,使得各所述依赖任务在依赖中并发执行。
采用上述进一步方案的有益效果是:在实现依赖任务的编排时,通过在静态树中配置任务的并发数和任务切片对应的业务参数,在任务树中配置任务切片执行的进程信息,并配置任务类型,以获得任务编排信息,根据任务编排信息实现依赖任务的编排、调度和并行执行。
进一步地,调度客户端装置还用于从任务树中获取任务编排信息,过滤掉任务类型为1的任务,根据任务编排信息对过滤后的任务进行调度,任务执行中心系统用于执行所述过滤后的任务。
采用上述进一步方案的有益效果是:通过在任务树中的待执行任务信息中,过滤掉任务类型为1的任务,由于任务类型1的任务属于虚拟任务,过滤掉后,再执行依赖任务,能够节省系统资源,提高调度效率。
进一步地,调度客户端装置还具体用于当调度任务为简单任务时,判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,完成本次所述简单任务的调度,任务执行中心系统执行所述简单任务;如果不一致,等待下一次调度;
当调度任务为所述依赖任务,判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,校验所述依赖任务的上一条任务切片是否执行完成,如果执行完成,判断控制树上是否存在相关记录,如果存在,执行所述依赖任务;
判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数如果不一致,等待下一次调度。
采用上述进一步方案的有益效果是:调度、执行简单任务,通过判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,说明配置任务的并发数与已经调度的任务数量一致,说明调度任务达到目标,通过该判断,保证了配置的任务都已经调度,并执行,没有遗漏的部分,提高编排调度系统编排、调度任务的准确率。
调度、执行依赖任务,不仅要判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,来确认是否有遗漏部分,还需要判断在控制树上是否存在记录,来确认当前依赖任务的上一条任务是否执行,上一个任务执行完成,才调度当前依赖任务,并执行,上述判断过程,既保证了执行任务的完整性,还保证了依赖任务之间的依赖性。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明的实施例一种基于ZooKeeper实现云化任务编排调度的方法提供的流程示意图;
图2为本发明的其他实施例提供云化任务编排调度系统的四棵目录树示意图;
图3为本发明的其他实施例提供的云化任务在静态树上配置数据信息的示意图;
图4为本发明的其他实施例提供的配置任务树流程的示意图;
图5为本发明的其他实施例提供的云化任务编排调度的系统结构框架图;
图6为本发明的其他实施例提供的基于ZooKeeper实现云化任务编排调度的系统结构图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明实施例提供的一种基于ZooKeeper实现云化任务编排调度的方法,该方法包括:
S1,根据任务需求,在静态树上对任务进行云化切片配置,获得任务切片的配置信息;在任务树上对任务切片进行实例化、池化配置,获得任务切片的任务编排信息;在动态树上记录任务切片的运行状态;在控制树上记录任务切片的执行状态;任务包括:简单任务和依赖任务中至少一项;
在化任务编排调度系统内,如图2所示,有四棵目录树:静态树S:任务切片的静态配置数据信息;任务树T:任务切片或任务组的具体执行信息;动态树D:任务切片执行的临时节点数据,防止重复调度执行;控制树C:任务切片完成后的状态数据;
在某实施例中,静态树配置流程如图3所示的环节②③④,对任务进行云化切片配置。静态树上的任务切片配置,确保任务在云化系统中进程并发执行。静态树配置的关键要素可以包括:任务集群组、任务类别和任务切片;任务集群组可以包括客户资料、销账资料等;任务类别可以包括:用户信息、客户信息或账单信息等;任务切片可以包括:任务切片配置信息,以及任务切片配置信息的进程信息等。
在某实施例中,配置任务树流程如图4所示的环节②③④,对任务切片实例化、池化的配置,是任务切片配置的具体执行信息,也是云化调度系统调度进程的依据。任务树的任务类型,分为三类:任务类型为0,表示调度可以直接执行,无依赖;任务类型为1,表示依赖调度,不能直接执行;任务类型为2,表示任务编排,任务间有依赖。任务树配置的关键要素可以包括:任务集群组、任务类别、任务类型和任务信息等;任务集群组可以包括客户资料、销账资料等;任务类别可以包括:用户信息、客户信息或账单信息等;任务信息可以包括IP段、应用路径、应用名称和可变参数等。
在某实施例中,动态树用来记录任务切片的运行状态,在云化系统中,静态树上的任务切片在动态树上创建唯一的标识,防止同一个任务切片在云化系统中重复调度执行,是一个临时性节点。生命周期随同任务切片的执行时长,待任务切片执行结束后,动态树对应的临时节点也随之消失。
在某实施例中,控制树用来记录任务切片的执行状态,在云化任务编编排后,记录每个任务切片执行完成后的信息,只有任务切片完成后,才会对应有一条记录数据。未完成或未执行的任务切片,在控制树树上无数据。在控制树中,任务依赖中的每个任务切片执行完成后记录关键要素可以包括:任务集群组、任务类别、任务标识和任务状态。例如:简单任务,任务类型为0,任务切片执行结束后,不做控制树操作;简单依赖任务,任务类型为1,任务切片执行结束后,控制树上生成相应的记录数据;依赖并行,任务类型为2,任务切片执行结束后,控制树上生成相应的记录数据。
编排简单任务包括:在静态树中配置简单任务的并发数和配置执行简单任务的任务切片对应的业务参数;
在任务树中配置任务切片执行的进程信息,并配置简单任务的类型为0;
根据简单任务的并发数、简单任务的业务参数和简单任务的任务切片执行的进程信息,获得简单任务的任务编排信息;
编排依赖任务包括:在静态树中配置依赖任务的并发数和配置执行依赖任务的任务切片对应的业务参数;
在任务树中配置依赖任务的任务切片执行的进程信息,并配置依赖任务的类型为1;
根据依赖任务的并发数、依赖任务的业务参数和依赖任务的任务切片执行的进程信息,获得依赖任务的任务编排信息;
在任务树中配置依赖任务的任务类别的编排依赖和配置依赖任务的类型为2,各依赖任务之间用第一预设符号分隔,使得各依赖任务依赖执行;或,设置任意两个以上的依赖任务并行执行,并用第二预设符号标记,使得各依赖任务在依赖中并发执行。
S2,根据任务编排信息调度任务切片,并执行调度后的任务切片。
本方案包括两大部分:云化任务编排中心和云化任务调度。其中云化任务调度,又分为云化任务调度客户端和云化任务执行中心,云化调度客户端部署在任务执行的节点上、负责任务获取、任务解析和任务调度;云化任务编排中心负责任务编排,云化任务执行中心负责任务执行。如图5所示,
本申请方案通过在云化任务编排调度系统内,根据任务需求,在静态树上对任务进行云化切片配置,获得任务切片的配置信息;在任务树上对任务切片进行实例化、池化配置,获得任务切片的任务编排信息;根据任务编排信息调度任务切片,并执行调度后的任务切片,实现了任务的编排、调度和执行,并做到不需要人工干预,能够通过云化任务编排调度客户端实现任务的编排和调度,提高了批量任务的易用性和健壮性。
优选地,在上述任意实施例中,当任务为简单任务时,S1具体包括:
在静态树中配置简单任务的并发数和配置执行简单任务的任务切片对应的业务参数;
在任务树中配置任务切片执行的进程信息,并配置简单任务的类型为0;
根据简单任务的并发数、简单任务的业务参数和简单任务的任务切片执行的进程信息,获得简单任务的任务编排信息;
任务树的类型包括:任务类型为0,表示调度可以直接执行,无依赖;任务类型为1,表示依赖调度,不能直接执行;任务类型为2,表示任务编排,任务间有依赖。
在实现简单任务的编排时,通过在静态树中配置任务的并发数和任务切片对应的业务参数,在任务树中配置任务切片执行的进程信息,并配置任务类型,以获得任务编排信息,根据任务编排信息实现简单任务的编排、调度和并行执行。
优选地,在上述任意实施例中,当任务为依赖任务时,S1具体还包括:当任务为依赖任务时:
在静态树中配置依赖任务的并发数和配置执行依赖任务的任务切片对应的业务参数;
在任务树中配置依赖任务的任务切片执行的进程信息,并配置依赖任务的类型为1;
根据依赖任务的并发数、依赖任务的业务参数和依赖任务的任务切片执行的进程信息,获得依赖任务的任务编排信息;
在任务树中配置依赖任务的任务类别的编排依赖和配置依赖任务的类型为2,各依赖任务之间用第一预设符号分隔,使得各依赖任务依赖执行;或,设置任意两个以上的依赖任务并行执行,并用第二预设符号标记,使得各依赖任务在依赖中并发执行。在某实施例中,第一预设符号,用于分隔任务类别,并表示各任务间依赖执行,该符号可以为“#”也可以为其他符合要求的符号,例如Task1#Task2#Task3,依赖执行。先执行task1,再执行task2,最后执行Task3。第二预设符号用于表示任务并行执行,可以用大花括号“{}”表示,也可以为其他符合要求的符号,例如Task1#{Task2#Task3#Task4}#Task5,在依赖中的并发执行。Task1先执行,其次Task2,Task3,Task4并发执行,最后执行Task5;
在实现依赖任务的编排时,通过在静态树中配置任务的并发数和任务切片对应的业务参数,在任务树中配置任务切片执行的进程信息,并配置任务类型,以获得任务编排信息,根据任务编排信息实现依赖任务的编排、调度和并行执行。
优选地,在上述任意实施例中,S2具体包括:
S21,从任务树中获取任务编排信息,过滤掉任务类型为1的任务;
S21,根据任务编排信息对过滤后的任务进行调度,并执行过滤后的任务。
通过在任务树中的待执行任务信息中,过滤掉任务类型为1的任务,由于任务类型1的任务属于虚拟任务,过滤掉后,再执行依赖任务,能够节省系统资源,提高调度效率。
优选地,在上述任意实施例中,根据任务编排信息对过滤后的任务进行调度,并执行过滤后的任务具体包括:
当调度任务为简单任务时,判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,完成本次简单任务的调度,执行简单任务;如果不一致,等待下一次调度;其中子节点表示配置任务的并发数,临时节点表示已经调度的任务数量,如果二者的数量一致,说明配置任务的并发数与已经调度的任务数量一致,说明调度任务达到目标。
当调度任务为依赖任务,判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,校验依赖任务的上一条任务切片是否执行完成,如果执行完成,判断控制树上是否存在相关记录,如果存在,执行依赖任务;控制树记录每个任务切片执行完成后的信息,只有任务切片完成后,才会对应有一条记录数据,因此通过控制树上是否有记录,可以判断任务切片是否完成。其中校验过程,可以包括:校验任务切片是否已经执行完成,即依据任务切片唯一标识在控制树上是否存在记录数据,有记录数据,说明任务切片已经执行成功;否则执行任务切片,直至任务切片完成;校验任务下的所有任务切片是否全部完成,即任务下的每一个任务切片按照第一点进行校验,全部完成后,则通知下一任务执行。
判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数,如果不一致,等待下一次调度。
调度、执行简单任务,通过判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,说明配置任务的并发数与已经调度的任务数量一致,说明调度任务达到目标,通过该判断,保证了配置的任务都已经调度,并执行,没有遗漏的部分,提高编排调度系统编排、调度任务的准确率。
调度、执行依赖任务,不仅要判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,来确认是否有遗漏部分,还需要判断在控制树上是否存在记录,来确认当前依赖任务的上一条任务是否执行,上一个任务执行完成,才调度当前依赖任务,并执行,上述判断过程,既保证了执行任务的完整性,还保证了依赖任务之间的依赖性。
在某一实施例中,一种基于ZooKeeper实现云化任务编排调度的系统,如图6所示,该系统包括:
任务编排中心系统11、调度客户端装置12和任务执行中心系统13;
任务编排中心系统11用于根据任务需求,在静态树上对任务进行云化切片配置,获得任务切片的配置信息;在任务树上对任务切片进行实例化、池化配置,获得任务切片的任务编排信息;在动态树上记录任务切片的运行状态;在控制树上记录任务切片的执行状态;任务包括:简单任务和依赖任务中至少一项;
调度客户端装置12用于根据任务编排信息调度任务切片;
任务执行中心系统13用于执行调度后的任务切片。
本申请方案通过在云化任务编排调度系统内,根据任务需求,在静态树上对任务进行云化切片配置,获得任务切片的配置信息;在任务树上对任务切片进行实例化、池化配置,获得任务切片的任务编排信息;根据任务编排信息调度任务切片,并执行调度后的任务切片,实现了任务的编排、调度和执行,并做到不需要人工干预,能够通过云化任务编排调度客户端实现任务的编排和调度,提高了批量任务的易用性和健壮性。
优选地,在上述任意实施例中,任务编排中心系统11具体用于当任务为简单任务时:
在静态树中配置简单任务的并发数和配置执行简单任务的任务切片对应的业务参数;
在任务树中配置任务切片执行的进程信息,并配置简单任务的类型为0;
根据简单任务的并发数、简单任务的业务参数和简单任务的任务切片执行的进程信息,获得简单任务的任务编排信息;
任务树的类型包括:任务类型为0,表示调度可以直接执行,无依赖;任务类型为1,表示依赖调度,不能直接执行;任务类型为2,表示任务编排,任务间有依赖。
在实现简单任务的编排时,通过在静态树中配置任务的并发数和任务切片对应的业务参数,在任务树中配置任务切片执行的进程信息,并配置任务类型,以获得任务编排信息,根据任务编排信息实现简单任务的编排、调度和并行执行。
优选地,在上述任意实施例中,任务编排中心系统11还具体用于当任务为依赖任务时,
在静态树中配置依赖任务的并发数和配置执行依赖任务的任务切片对应的业务参数;
在任务树中配置依赖任务的任务切片执行的进程信息,并配置依赖任务的类型为1;
根据依赖任务的并发数、依赖任务的业务参数和依赖任务的任务切片执行的进程信息,获得依赖任务的任务编排信息;
在任务树中配置依赖任务的任务类别的编排依赖和配置依赖任务的类型为2,各依赖任务之间用第一预设符号分隔,使得各依赖任务依赖执行;或,设置任意两个以上的依赖任务并行执行,并用第二预设符号标记,使得各依赖任务在依赖中并发执行。
在实现依赖任务的编排时,通过在静态树中配置任务的并发数和任务切片对应的业务参数,在任务树中配置任务切片执行的进程信息,并配置任务类型,以获得任务编排信息,根据任务编排信息实现依赖任务的编排、调度和并行执行。
优选地,在上述任意实施例中,调度客户端装置12还用于从任务树中获取任务编排信息,过滤掉任务类型为1的任务,根据任务编排信息对过滤后的任务进行调度,任务执行中心系统13用于执行过滤后的任务。
通过在任务树中的待执行任务信息中,过滤掉任务类型为1的任务,由于任务类型1的任务属于虚拟任务,过滤掉后,再执行依赖任务,能够节省系统资源,提高调度效率。
优选地,在上述任意实施例中,调度客户端装置12还具体用于当调度任务为简单任务时,判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,完成本次简单任务的调度,任务执行中心系统13执行简单任务;如果不一致,等待下一次调度;
当调度任务为依赖任务,判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,校验依赖任务的上一条任务切片是否执行完成,如果执行完成,判断控制树上是否存在相关记录,如果存在,执行依赖任务;
判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数如果不一致,等待下一次调度。
调度、执行简单任务,通过判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,说明配置任务的并发数与已经调度的任务数量一致,说明调度任务达到目标,通过该判断,保证了配置的任务都已经调度,并执行,没有遗漏的部分,提高编排调度系统编排、调度任务的准确率。
调度、执行依赖任务,不仅要判断静态树任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,来确认是否有遗漏部分,还需要判断在控制树上是否存在记录,来确认当前依赖任务的上一条任务是否执行,上一个任务执行完成,才调度当前依赖任务,并执行,上述判断过程,既保证了执行任务的完整性,还保证了依赖任务之间的依赖性。
可以理解,在一些实施例中,可以包含如上述各实施例中的部分或全部可选实施方式。
需要说明的是,上述各实施例是与在先方法实施例对应的产品实施例,对于产品实施例中各可选实施方式的说明可以参考上述各方法实施例中的对应说明,在此不再赘述。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种基于ZooKeeper实现云化任务编排调度的方法,其特征在于,
S1,根据任务需求,在静态树上对所述任务进行云化切片配置,获得任务切片的配置信息;在任务树上对所述任务切片进行实例化、池化配置,获得所述任务切片的任务编排信息;在动态树上记录所述任务切片的运行状态;在控制树上记录所述任务切片的执行状态;所述任务包括:简单任务和依赖任务中至少一项;
S2,根据所述任务编排信息调度所述任务切片,并执行调度后的所述任务切片;
其中,所述S2具体包括:
S21,从任务树中获取任务编排信息,过滤掉任务类型为1的任务;
S21,根据任务编排信息对过滤后的任务进行调度,并执行所述过滤后的任务;
所述根据任务编排信息对过滤后的任务进行调度,并执行所述过滤后的任务具体包括:
当调度任务为所述简单任务时,判断静态树的任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,完成本次所述简单任务的调度,执行所述简单任务;如果不一致,等待下一次调度;
当调度任务为所述依赖任务,判断静态树的任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,校验所述依赖任务的上一条任务切片是否执行完成,如果执行完成,判断控制树上是否存在相关记录,如果存在,执行所述依赖任务;
判断静态树的任务类别下的子节点个数与动态树上任务类别的临时节点个数,如果不一致,等待下一次调度。
2.根据权利要求1所述的一种基于ZooKeeper实现云化任务编排调度的方法,其特征在于,当所述任务为简单任务时,S1具体包括:
在静态树中配置所述简单任务的并发数和配置执行所述简单任务的任务切片对应的业务参数;
在任务树中配置所述任务切片执行的进程信息,并配置所述简单任务的类型为0;
根据所述简单任务的并发数、所述简单任务的业务参数和所述简单任务的任务切片执行的进程信息,获得所述简单任务的任务编排信息;
所述任务树的类型包括:任务类型为0,表示调度可以直接执行,无依赖;任务类型为1,表示依赖调度,不能直接执行;任务类型为2,表示任务编排,任务间有依赖。
3.根据权利要求2所述的一种基于ZooKeeper实现云化任务编排调度的方法,其特征在于,当所述任务为依赖任务时,S1具体还包括:当所述任务为依赖任务时:
在静态树中配置所述依赖任务的并发数和配置执行所述依赖任务的任务切片对应的业务参数;
在任务树中配置所述依赖任务的任务切片执行的进程信息,并配置所述依赖任务的类型为1;
根据所述依赖任务的并发数、所述依赖任务的业务参数和所述依赖任务的任务切片执行的进程信息,获得所述依赖任务的任务编排信息;
在任务树中配置所述依赖任务的任务类别的编排依赖和配置所述依赖任务的类型为2,各所述依赖任务之间用第一预设符号分隔,使得各所述依赖任务依赖执行;或,设置任意两个以上的所述依赖任务并行执行,并用第二预设符号标记,使得各所述依赖任务在依赖中并发执行。
4.一种基于ZooKeeper实现云化任务编排调度的系统,其特征在于,包括:任务编排中心系统、调度客户端装置和任务执行中心系统;
任务编排中心系统用于根据任务需求,在静态树上对所述任务进行云化切片配置,获得任务切片的配置信息;在任务树上对所述任务切片进行实例化、池化配置,获得所述任务切片的任务编排信息;在动态树上记录所述任务切片的运行状态;在控制树上记录所述任务切片的执行状态;所述任务包括:简单任务和依赖任务中至少一项;
调度客户端装置用于根据所述任务编排信息调度所述任务切片;
任务执行中心系统用于执行调度后的所述任务切片;
其中,调度客户端装置还用于从任务树中获取任务编排信息,过滤掉任务类型为1的任务,根据任务编排信息对过滤后的任务进行调度,任务执行中心系统用于执行所述过滤后的任务;
调度客户端装置还具体用于当调度任务为简单任务时,判断静态树的任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,完成本次所述简单任务的调度,任务执行中心系统执行所述简单任务;如果不一致,等待下一次调度;
当调度任务为所述依赖任务,判断静态树的任务类别下的子节点个数与动态树上任务类别的临时节点个数是否一致,如果一致,校验所述依赖任务的上一条任务切片是否执行完成,如果执行完成,判断控制树上是否存在相关记录,如果存在,执行所述依赖任务;
判断静态树的任务类别下的子节点个数与动态树上任务类别的临时节点个数如果不一致,等待下一次调度。
5.根据权利要求4所述的一种基于ZooKeeper实现云化任务编排调度的系统,其特征在于,任务编排中心系统具体用于当所述任务为简单任务时:
在静态树中配置所述简单任务的并发数和配置执行所述简单任务的任务切片对应的业务参数;
在任务树中配置所述任务切片执行的进程信息,并配置所述简单任务的类型为0;
根据所述简单任务的并发数、所述简单任务的业务参数和所述简单任务的任务切片执行的进程信息,获得所述简单任务的任务编排信息;
所述任务树的类型包括:任务类型为0,表示调度可以直接执行,无依赖;任务类型为1,表示依赖调度,不能直接执行;任务类型为2,表示任务编排,任务间有依赖。
6.根据权利要求5所述的一种基于ZooKeeper实现云化任务编排调度的系统,其特征在于,任务编排中心系统还具体用于当所述任务为依赖任务时,在静态树中配置所述依赖任务的并发数和配置执行所述依赖任务的任务切片对应的业务参数;
在任务树中配置所述依赖任务的任务切片执行的进程信息,并配置所述依赖任务的类型为1;
根据所述依赖任务的并发数、所述依赖任务的业务参数和所述依赖任务的任务切片执行的进程信息,获得所述依赖任务的任务编排信息;
在任务树中配置所述依赖任务的任务类别的编排依赖和配置所述依赖任务的类型为2,各所述依赖任务之间用第一预设符号分隔,使得各所述依赖任务依赖执行;或,设置任意两个以上的所述依赖任务并行执行,并用第二预设符号标记,使得各所述依赖任务在依赖中并发执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911248841.3A CN110928668B (zh) | 2019-12-09 | 2019-12-09 | 一种基于ZooKeeper实现云化任务编排调度的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911248841.3A CN110928668B (zh) | 2019-12-09 | 2019-12-09 | 一种基于ZooKeeper实现云化任务编排调度的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928668A CN110928668A (zh) | 2020-03-27 |
CN110928668B true CN110928668B (zh) | 2022-06-07 |
Family
ID=69857570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911248841.3A Active CN110928668B (zh) | 2019-12-09 | 2019-12-09 | 一种基于ZooKeeper实现云化任务编排调度的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928668B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293971A (zh) * | 2016-08-15 | 2017-01-04 | 张家林 | 一种分布式任务调度的方法和装置 |
CN107463356A (zh) * | 2017-08-17 | 2017-12-12 | 北京云纵信息技术有限公司 | 任务流程的执行方法和装置 |
CN109376017A (zh) * | 2019-01-07 | 2019-02-22 | 人和未来生物科技(长沙)有限公司 | 基于容器的云计算平台任务处理方法、系统及其应用方法 |
CN110389832A (zh) * | 2019-06-21 | 2019-10-29 | 深圳市汇川技术股份有限公司 | ZooKeeper容器集群部署方法、系统、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070143759A1 (en) * | 2005-12-15 | 2007-06-21 | Aysel Ozgur | Scheduling and partitioning tasks via architecture-aware feedback information |
CN103294554A (zh) * | 2012-03-05 | 2013-09-11 | 中兴通讯股份有限公司 | 片上系统soc的多处理器的调度方法及装置 |
-
2019
- 2019-12-09 CN CN201911248841.3A patent/CN110928668B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293971A (zh) * | 2016-08-15 | 2017-01-04 | 张家林 | 一种分布式任务调度的方法和装置 |
CN107463356A (zh) * | 2017-08-17 | 2017-12-12 | 北京云纵信息技术有限公司 | 任务流程的执行方法和装置 |
CN109376017A (zh) * | 2019-01-07 | 2019-02-22 | 人和未来生物科技(长沙)有限公司 | 基于容器的云计算平台任务处理方法、系统及其应用方法 |
CN110389832A (zh) * | 2019-06-21 | 2019-10-29 | 深圳市汇川技术股份有限公司 | ZooKeeper容器集群部署方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110928668A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8909603B2 (en) | Backing up objects to a storage device | |
CN102214139A (zh) | 一种面向分布式系统的自动化测试的执行控制与调度方法 | |
CN111984390A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN112835714B (zh) | 云边环境中面向cpu异构集群的容器编排方法、系统及介质 | |
CN109829757B (zh) | 一种最优营销方案的选择方法及装置 | |
CN105988930A (zh) | 测试用例生成方法和装置 | |
CN112035233A (zh) | 大数据批量作业任务调度方法及装置 | |
CN112748993A (zh) | 任务执行方法、装置、存储介质及电子设备 | |
CN111190691A (zh) | 适用于虚拟机的自动迁移方法、系统、装置及存储介质 | |
US20110023044A1 (en) | Scheduling highly parallel jobs having global interdependencies | |
CN109947568A (zh) | 定时任务处理方法、系统、计算机设备及存储介质 | |
CN112199180A (zh) | 多任务调度的方法及装置、电子设备及可读存储介质 | |
CN110134646B (zh) | 知识平台服务数据存储与集成方法及系统 | |
CN110928668B (zh) | 一种基于ZooKeeper实现云化任务编排调度的方法和系统 | |
CN113485814A (zh) | 批量任务调度方法及装置 | |
CN105827744A (zh) | 云存储平台的数据处理方法 | |
CN116089040A (zh) | 业务流程的调度方法及其装置、电子设备及存储介质 | |
CN112150035B (zh) | 数据处理方法和装置 | |
CN111897725B (zh) | 中台服务自动化测试方法、介质、设备及系统 | |
CN115221008A (zh) | 一种基于微服务模式的调度系统监控方法、设备及介质 | |
CN110728838B (zh) | 抄表方法、装置和电力采集终端 | |
CN110046809B (zh) | 作业调度方法及装置 | |
CN112363819A (zh) | 大数据任务动态编排调度方法、装置及计算设备 | |
Gomez-Sanchez et al. | Using AWS EC2 as Test-Bed infrastructure in theI/O system configuration for HPC applications | |
CN112433950A (zh) | 自动搭建测试环境的方法、电子设备及存储介质 |
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 |