CN112114956A - 一种任务调度方法、装置和系统 - Google Patents
一种任务调度方法、装置和系统 Download PDFInfo
- Publication number
- CN112114956A CN112114956A CN202011052967.6A CN202011052967A CN112114956A CN 112114956 A CN112114956 A CN 112114956A CN 202011052967 A CN202011052967 A CN 202011052967A CN 112114956 A CN112114956 A CN 112114956A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- scheduling
- actuator
- module
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000001419 dependent effect Effects 0.000 claims description 18
- 230000001960 triggered effect Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种任务调度方法、装置和系统,获取任务流程,对任务流程进行拆分,得到各个任务的依赖参数。在目标任务所包含的条件被满足的情况下,统计任务的数量、以及预先获取的各个执行器的状态信息。依据统计结果,确定任务和执行器之间的对应关系。依据对应关系,将各个任务和任务的执行要求,发送给对应的执行器,使得执行器按照执行要求执行任务。可见,只需在任务流程中提前定义各个任务相互之间的依赖关系,通过拆分任务流程,获得各个任务,将各个任务和任务的执行要求发送给对应的执行器,触发执行器执行任务,便能够各个任务的有效分发,相较于现有技术还需要人为参与任务调度,自动化水平明显会更高,任务调度的效率也会更高。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务调度方法、装置和系统。
背景技术
随着微服务架构在银行业务系统的普及,原本大而全的业务产品被拆分成相对独立微服务应用,数据也变得零散,业务系统想要将数据汇聚整合、提炼加工变得尤为困难。这就要求业务系统需具备统一的任务调度框架,获取各个微服务应用的数据生成数据处理流程,并按照数据处理流程,执行各个任务。
目前,较为常用的调度框架为通用型调度框架(例如,xxl-job、saturn、以及elaetic-job-lite等)。在实际应用中,数据处理流程往往具有很长的调用链条,任务除了具有时间触发的基本属性值外,任务与任务之间还存在较为复杂的依赖关系。然而,通用型调度框架只是单纯地向执行器分发任务,触发执行器执行任务,面对具有复杂依赖关系的批量任务则还需人工逐一调度,效率较低。
发明内容
本申请提供了一种任务调度方法、装置和系统,目的在于提高批量任务的调度效率。
为了实现上述目的,本申请提供了以下技术方案:
一种任务调度方法,包括:
获取任务流程;所述任务流程用于指示各个任务的执行要求、以及各个所述任务相互之间的依赖关系,所述执行要求包括所述任务的类型;
对所述任务流程进行拆分,得到各个所述任务的依赖参数,所述依赖参数用于指示被所述任务依赖的其他所述任务的数量;
判断目标任务所包含的条件是否被满足;所述目标任务为,不依赖于其它所述任务、且所述任务类型为条件触发型的所述任务;
在所述目标任务所包含的所述条件不被满足的情况下,暂停对所述任务流程的处理,并提示所述目标任务不符合要求;
在所述目标任务所包含的所述条件被满足的情况下,统计所述任务的数量、以及预先获取的各个执行器的状态信息;
依据统计结果,确定所述任务和所述执行器之间的对应关系;
依据所述对应关系,将各个所述任务和所述任务的所述执行要求,发送给对应的所述执行器,使得所述执行器按照所述执行要求执行所述任务。
一种任务调度系统,包括:
调度模块;
所述调度模块用于执行下述步骤:
获取任务流程;所述任务流程用于指示各个任务的执行要求、以及各个所述任务相互之间的依赖关系,所述执行要求包括所述任务的类型;
对所述任务流程进行拆分,得到各个所述任务的依赖参数,所述依赖参数用于指示被所述任务依赖的其他所述任务的数量;
在目标任务所包含的条件不被满足的情况下,暂停对所述任务流程的处理,并提示所述目标任务不符合要求;所述目标任务为,不依赖于其它所述任务、且所述任务类型为条件触发型的所述任务;
在所述目标任务所包含的所述条件被满足的情况下,统计所述任务的数量、以及预先获取的各个执行器的状态信息;
依据统计结果,确定所述任务和所述执行器之间的对应关系;
依据所述对应关系,将各个所述任务和所述任务的所述执行要求,发送给对应的所述执行器,使得所述执行器按照所述执行要求执行所述任务。
可选的,所述调度模块的数量至少为一个;其中,各个所述调度模块依据预设的分布式协议选取一个所述调度模块,作为主调度节点,其余所述调度模块作为从调度节点。
可选的,还包括:
执行器模块,所述执行器模块包括所述执行器;
所述执行器模块,用于在接收到所述任务和所述任务的所述执行要求的情况下,按照所述执行要求执行所述任务,得到任务执行结果,并将所述任务执行结果发送给所述调度模块。
可选的,所述执行器模块的数量为至少一个,各个所述执行器模块依据预设的分布式协议选取一个所述执行器模块,作为主执行节点,其余所述执行器模块作为从执行节点。
可选的,作为所述主执行节点的所述执行器模块还用于:
获取各个所述执行器模块的状态信息,并将各个所述执行器模块的所述状态信息,发送给所述调度模块。
可选的,还包括:
用户接口模块和数据库模块;
所述用户接口模块,用于获取用户通过预设界面输入的所述任务流程,并将所述任务流程发送给所述数据库模块;
所述数据库模块,用于向所述调度模块发送所述任务流程,并存储所述调度模块的状态信息、以及各个所述执行器的所述状态信息。
一种任务调度装置,包括:
获取单元,用于获取任务流程;所述任务流程用于指示各个任务的执行要求、以及各个所述任务相互之间的依赖关系,所述执行要求包括所述任务的类型;
拆分单元,用于对所述任务流程进行拆分,得到各个所述任务的依赖参数,所述依赖参数用于指示被所述任务依赖的其他所述任务的数量;
判断单元,用于判断目标任务所包含的条件是否被满足;所述目标任务为,不依赖于其它所述任务、且所述任务类型为条件触发型的所述任务;
提示单元,用于在所述目标任务所包含的所述条件不被满足的情况下,暂停对所述任务流程的处理,并提示所述目标任务不符合要求;
统计单元,用于在所述目标任务所包含的所述条件被满足的情况下,统计所述任务的数量、以及预先获取的各个执行器的状态信息;
确定单元,用于依据统计结果,确定所述任务和所述执行器之间的对应关系;
发送单元,用于依据所述对应关系,将各个所述任务和所述任务的所述执行要求,发送给对应的所述执行器,使得所述执行器按照所述执行要求执行所述任务。
一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行所述的任务调度方法。
一种任务调度设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的任务调度方法。
本申请提供的技术方案,获取任务流程,任务流程用于指示各个任务的执行要求、以及各个任务相互之间的依赖关系,执行要求包括任务的类型。对任务流程进行拆分,得到各个任务的依赖参数,依赖参数用于指示被任务依赖的其他任务的数量。在目标任务所包含的条件不被满足的情况下,暂停对任务流程的处理,并提示目标任务不符合要求。目标任务为,不依赖于其它任务、且任务类型为条件触发型的任务。在目标任务所包含的条件被满足的情况下,统计任务的数量、以及预先获取的各个执行器的状态信息。依据统计结果,确定任务和执行器之间的对应关系。依据对应关系,将各个任务和任务的执行要求,发送给对应的执行器,使得执行器按照执行要求执行任务。可见,只需在任务流程中提前定义各个任务相互之间的依赖关系,通过拆分任务流程,获得各个任务,将各个任务和任务的执行要求发送给对应的执行器,触发执行器执行任务,便能够各个任务的有效分发,相较于现有技术还需要人为参与任务调度,自动化水平明显会更高,任务调度的效率也会更高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一种任务调度系统的结构示意图;
图1b为本申请实施例提供的一种任务调度实现过程的示意图;
图1c为本申请实施例提供的另一种任务调度实现过程的示意图;
图1d为本申请实施例提供的一种有向无环图的示意图;
图2为本申请实施例提供的一种任务调度方法的示意图;
图3为本申请实施例提供的一种任务调度装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1a所示,为本申请实施例提供的一种任务调度系统的结构示意图,包括:
用户接口模块100、至少一个调度模块200、至少一个执行器模块300、以及数据库模块400。
其中,调度模块200的数量并不仅仅局限于图1a所示的数量,另外,执行器模块300的数量也并不仅仅局限于图1a所示的数量。
具体的,任务调度系统实现任务调度的具体过程,如图1b和图1c所示,包括如下步骤:
S101:用户接口模块获取用户通过预设界面输入的任务流程。
其中,任务流程用于指示各个任务的执行要求、以及各个任务相互之间的依赖关系,执行要求包括任务的类型。在本实施例中,各个任务相互之间的依赖关系可通过有向无环图表示,具体的,可以参见下述图1d所示。
需要说明的是,各个任务的执行要求包括但不限于为:任务的类型(例如条件触发型、数据存储型、以及数据收集型)、执行时间(用于指示在预设时间点执行任务)、执行频次(用于指示任务的执行次数和频率)、执行脚本(即执行任务时所需运行的脚本)、以及执行参数(即执行任务时所需配置的参数)。
S102:用户接口模块向数据库模块发送任务流程。
S103:调度模块基于预设的Raft协议进行主调度节点选举。
其中,所谓的Raft协议,是一种使用较为广泛的强一致性、去中心化、高可用的分布式协议。具体的,Raft协议是一种共识算法,即将多个调度模块作为节点,在部分节点故障、网络延时、以及网络分割的情况下,所有的节点依旧会对预设事件达成共识。在Raft协议中,任意一个节点在任意时刻都会处于以下三种状态:leader状态、follower状态、以及candidate状态。并且,只有一个调度模块处于leader状态(即充当主调度节点)、其余调度模块皆处于follower状态(即充当从调度节点),当预设时间段内主调度节点没有任何回应时,其余调度模块都可转换至candidate状态(即充当候选调度节点),并从各个候选调度节点中通过“投票选举”的方式选出主调度节点。
需要说明的是,所谓的去中心化,即任意一个节点都可以充当主节点。所谓的高可用,即系统中某一节点故障时,系统的功能依旧能够执行。
S104:执行器模块基于Raft协议进行主执行节点选举。
其中,执行器模块基于Raft协议进行主执行节点选举的具体实现原理,可参见上述S103示出的解释说明。
S105:作为主调度节点的调度模块,实时获取各个调度模块的状态信息,并将各个调度模块的状态信息缓存至本地。
其中,调度模块的状态信息包括但不限于为IP地址、所属服务器的设备信息、以及预设标识(例如DD001)等信息。
需要说明的是,基于Raft协议确定的主调度节点,能够在作为主调度节点的调度模块故障的情况下,重新推选出新的主调度节点,保证任务调度系统依旧可工作,实现任务调度系统的去中心化和高可用,从而使得任务调度系统能够运用到分布式部署场景中。
此外,若其余作为从调度节点的调度模块发生故障,则作为主调度节点的调度模块无法获取到故障调度模块的状态信息,从而实现对各个调度模块的故障感知。
S106:作为主调度节点的调度模块,向数据库模块发送自身的状态信息。
S107:作为主执行节点的执行器模块,实时获取各个执行器模块的状态信息,并将各个执行器模块的状态信息缓存至本地。
其中,执行器模块的状态信息包括但不限于为IP地址、端口、内存使用详情、待执行的任务数量、以及预设标识(例如ZXQ001)等信息。
需要说明的是,基于Raft协议确定的主执行节点,能够在作为主执行节点的执行器模块故障的情况下,重新推选出新的主执行节点,保证任务调度系统依旧可工作,实现任务调度系统的去中心化和高可用,从而使得任务调度系统能够运用到分布式部署场景中。
此外,若其余作为从执行节点的执行器模块发生故障,则作为主执行节点的执行器模块无法获取到故障执行器模块的状态信息,从而实现对各个执行器模块的故障感知。
S108:作为主执行节点的执行器模块,向数据库模块发送自身的状态信息。
S109:作为主调度节点的调度模块,按照预设间隔时间,从数据库模块中读取预存的任务流程。
其中,数据库模块中预存的任务流程被读取之后,则数据库模块中预存的任务流程会被清空。
S110:作为主调度节点的调度模块,按照预设间隔时间,从作为主执行节点的执行器模块中读取预存的各个执行器模块的状态信息。
其中,作为主执行节点的执行器模块中预存的各个执行器模块的状态信息被读取之后,作为主执行节点的执行器模块中预存的各个执行器模块的状态信息会被清空。
此外,作为主调度节点的调度模块,每次读取得到的各个执行器模块的状态信息,都会替换前一次读取得到的各个执行器模块的状态信息。
需要说明的是,若任意一个执行器模块故障,则作为主调度节点的调度模块不会读取到该故障执行器模块的状态信息,也就不会向故障执行器模块分发任务,从而实现对各个执行器模块的故障感知,避免无效的任务调度,提高任务调度的效率。
S111:作为主调度节点的调度模块,对任务流程进行拆分,得到各个任务的依赖参数。
其中,依赖参数用于指示被任务依赖的其他任务的数量。若任务流程为有向无环图,依赖参数即为入度,在图论领域中,入度的含义为:进入顶点的边的个数称为顶点的入度。
需要说明的是,在任务流程较多情况下,作为主调度节点的调度模块,还可以将部分任务流程、以及各个执行器模块的状态信息发送给任意一个从调度节点,由作为从调度节点的调度模块,负责执行S111-S115、以及S118和S119,从而提高任务调度的效率。
S112:作为主调度节点的调度模块,判断目标任务所包含的条件是否被满足。
若目标任务所包含的条件能被满足,则执行S113,否则执行S114。
其中,目标任务为,不依赖于其它任务、且任务类型为条件触发型的任务。若任务流程为有向无环图,则目标任务为,入度为0、任务类型为条件触发型的任务。具体的,以图1d示出的有向无环图为例,目标任务为“文件下发手机卡系统数据,下发时间:凌晨2:00”,“下发时间:凌晨2:00”为目标任务所包含的条件。
S113:作为主调度节点的调度模块,统计任务的数量、以及各个执行器模块的状态信息,并依据统计结果,确定任务和执行器模块之间的对应关系。
在S113执行之后,继续执行S115。
其中,统计任务的数量、以及各个执行器模块的状态信息,并依据统计结果,确定任务和执行器模块之间的对应关系,能够控制各个执行器模块所执行的任务,在任务数量巨大,且执行器模块负载能力有限的情况下,能够均分各个执行器模块的工作量,进一步提高任务调度的效率。
S114:作为主调度节点的调度模块,暂停对任务流程的处理,并提示目标任务不符合要求。
具体的,以图1d示出的有向无环图为例,目标任务为“文件下发手机卡系统数据,下发时间:凌晨2:00”,目标任务所包含的条件为“下发时间:凌晨2:00”。在实际应用中,假设卡系统故障,导致凌晨4:00才完成文件下发,明显的,“下发时间:凌晨2:00”条件没有被满足,此时若还是继续执行该任务则毫无意义,因此,暂停对任务流程的处理,并提示“文件下发手机卡系统数据,下发时间:凌晨2:00”任务不符合要求。
需要说明的是,在目标任务所包含的条件不能被满足的情况下,暂停对任务流程的处理,能够减少无意义的任务调度,从而有效提高任务调度的效率。
S115:作为主调度节点的调度模块,依据任务和执行器模块之间的对应关系,将各个任务和任务的执行要求,发送给对应的执行器模块。
其中,执行器模块会预先启动监听线程(例如netty线程),与调度模块建立连接。如此一来,调度模块向各个执行器模块分发任务的效率会明显提高。
S116:执行器模块按照执行要求执行任务,得到任务执行结果。
需要说明的是,在本实施例中执行器模块包括执行器,也就是说,执行器模块具备执行器的所有功能。
S117:执行器模块向作为主调度节点的调度模块发送任务执行结果。
S118:作为主调度节点的调度模块,依据任务执行结果,生成任务执行状态信息。
其中,任务执行状态信息包括任务、执行器模块与任务执行结果之间的对应关系。
S119:作为主调度节点的调度模块,向数据库模块发送任务执行状态信息。
综上所述,只需在任务流程中提前定义各个任务相互之间的依赖关系,通过拆分任务流程,获得各个任务,将各个任务和任务的执行要求发送给对应的执行器,触发执行器执行任务,便能够各个任务的有效分发,相较于现有技术还需要人为参与任务调度,自动化水平明显会更高,任务调度的效率也会更高。此外,任务调度系统中的调度模块的数量为至少一个、执行器的数量为至少一个,各个调度模块基于预设的分布式协议推选出主调度节点和从调度节点,各个执行器模块基于分布式协议推选出主执行节点和从执行节点,从而使得任务调度系统能够运用到分布式部署场景中,大大提高任务调度的效率。
需要说明的是,上述实施例所示出的,关于各个调度模块依据预设的分布式协议选取一个调度模块,作为主调度节点,其余调度模块作为从调度节点的过程,为上述任务调度系统实现任务调度的一种具体表现方式。此外,关于各个执行器模块依据预设的分布式协议选取一个执行器模块,作为主执行节点,其余执行器模块作为从执行节点的过程,也为上述任务调度系统实现任务调度的一种具体表现方式。当然,用户接口模块也是上述任务调度系统中具体用于与用户交互的接口的一种具体表现方式。为此,上述实施例中任务系统实现任务调度的过程,可以概括为下述图2所示的方法。
如图2所示,为本申请实施例提供的一种任务调度方法的示意图,包括如下步骤:
S201:获取任务流程。
其中,任务流程用于指示各个任务的执行要求、以及各个任务相互之间的依赖关系,执行要求包括任务的类型。
S202:对任务流程进行拆分,得到各个任务的依赖参数。
其中,依赖参数用于指示被任务依赖的其他任务的数量。
S203:判断目标任务所包含的条件是否被满足。
若目标任务所包含的条件被满足,则执行S204,否则执行S205。
其中,目标任务为,不依赖于其它任务、且任务类型为条件触发型的任务。
S204:统计任务的数量、以及预先获取的各个执行器的状态信息。
在执行S204之后,继续执行S206。
S205:暂停对任务流程的处理,并提示目标任务不符合要求。
S206:依据统计结果,确定任务和执行器之间的对应关系。
S207:依据对应关系,将各个任务和任务的执行要求,发送给对应的执行器,使得执行器按照执行要求执行任务。
综上所述,获取任务流程,任务流程用于指示各个任务的执行要求、以及各个任务相互之间的依赖关系,执行要求包括任务的类型。对任务流程进行拆分,得到各个任务的依赖参数,依赖参数用于指示被任务依赖的其他任务的数量。在目标任务所包含的条件不被满足的情况下,暂停对任务流程的处理,并提示目标任务不符合要求。目标任务为,不依赖于其它任务、且任务类型为条件触发型的任务。在目标任务所包含的条件被满足的情况下,统计任务的数量、以及预先获取的各个执行器的状态信息。依据统计结果,确定任务和执行器之间的对应关系。依据对应关系,将各个任务和任务的执行要求,发送给对应的执行器,使得执行器按照执行要求执行任务。可见,只需在任务流程中提前定义各个任务相互之间的依赖关系,通过拆分任务流程,获得各个任务,将各个任务和任务的执行要求发送给对应的执行器,触发执行器执行任务,便能够各个任务的有效分发,相较于现有技术还需要人为参与任务调度,自动化水平明显会更高,任务调度的效率也会更高。
与上述本申请实施例提供的任务调度方法相对应,本申请实施例还提供了一种任务调度装置。
如图3所示,为本申请实施例提供的一种任务调度装置的结构示意图,包括:
获取单元301,用于获取任务流程。任务流程用于指示各个任务的执行要求、以及各个任务相互之间的依赖关系,执行要求包括任务的类型。
拆分单元302,用于对任务流程进行拆分,得到各个任务的依赖参数,依赖参数用于指示被任务依赖的其他任务的数量。
判断单元303,用于判断目标任务所包含的条件是否被满足。目标任务为,不依赖于其它任务、且任务类型为条件触发型的任务。
提示单元304,用于在目标任务所包含的条件不被满足的情况下,暂停对任务流程的处理,并提示目标任务不符合要求。
统计单元305,用于在目标任务所包含的条件被满足的情况下,统计任务的数量、以及预先获取的各个执行器的状态信息。
确定单元306,用于依据统计结果,确定任务和执行器之间的对应关系。
发送单元307,用于依据对应关系,将各个任务和任务的执行要求,发送给对应的执行器,使得执行器按照执行要求执行任务。
综上所述,获取任务流程,任务流程用于指示各个任务的执行要求、以及各个任务相互之间的依赖关系,执行要求包括任务的类型。对任务流程进行拆分,得到各个任务的依赖参数,依赖参数用于指示被任务依赖的其他任务的数量。在目标任务所包含的条件不被满足的情况下,暂停对任务流程的处理,并提示目标任务不符合要求。目标任务为,不依赖于其它任务、且任务类型为条件触发型的任务。在目标任务所包含的条件被满足的情况下,统计任务的数量、以及预先获取的各个执行器的状态信息。依据统计结果,确定任务和执行器之间的对应关系。依据对应关系,将各个任务和任务的执行要求,发送给对应的执行器,使得执行器按照执行要求执行任务。可见,只需在任务流程中提前定义各个任务相互之间的依赖关系,通过拆分任务流程,获得各个任务,将各个任务和任务的执行要求发送给对应的执行器,触发执行器执行任务,便能够各个任务的有效分发,相较于现有技术还需要人为参与任务调度,自动化水平明显会更高,任务调度的效率也会更高。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的任务调度方法。
本申请还提供了一种任务调度设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的任务调度方法,包括如下步骤:
获取任务流程;所述任务流程用于指示各个任务的执行要求、以及各个所述任务相互之间的依赖关系,所述执行要求包括所述任务的类型;
对所述任务流程进行拆分,得到各个所述任务的依赖参数,所述依赖参数用于指示被所述任务依赖的其他所述任务的数量;
判断目标任务所包含的条件是否被满足;所述目标任务为,不依赖于其它所述任务、且所述任务类型为条件触发型的所述任务;
在所述目标任务所包含的所述条件不被满足的情况下,暂停对所述任务流程的处理,并提示所述目标任务不符合要求;
在所述目标任务所包含的所述条件被满足的情况下,统计所述任务的数量、以及预先获取的各个执行器的状态信息;
依据统计结果,确定所述任务和所述执行器之间的对应关系;
依据所述对应关系,将各个所述任务和所述任务的所述执行要求,发送给对应的所述执行器,使得所述执行器按照所述执行要求执行所述任务。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种任务调度方法,其特征在于,包括:
获取任务流程;所述任务流程用于指示各个任务的执行要求、以及各个所述任务相互之间的依赖关系,所述执行要求包括所述任务的类型;
对所述任务流程进行拆分,得到各个所述任务的依赖参数,所述依赖参数用于指示被所述任务依赖的其他所述任务的数量;
判断目标任务所包含的条件是否被满足;所述目标任务为,不依赖于其它所述任务、且所述任务类型为条件触发型的所述任务;
在所述目标任务所包含的所述条件不被满足的情况下,暂停对所述任务流程的处理,并提示所述目标任务不符合要求;
在所述目标任务所包含的所述条件被满足的情况下,统计所述任务的数量、以及预先获取的各个执行器的状态信息;
依据统计结果,确定所述任务和所述执行器之间的对应关系;
依据所述对应关系,将各个所述任务和所述任务的所述执行要求,发送给对应的所述执行器,使得所述执行器按照所述执行要求执行所述任务。
2.一种任务调度系统,其特征在于,包括:
调度模块;
所述调度模块用于执行下述步骤:
获取任务流程;所述任务流程用于指示各个任务的执行要求、以及各个所述任务相互之间的依赖关系,所述执行要求包括所述任务的类型;
对所述任务流程进行拆分,得到各个所述任务的依赖参数,所述依赖参数用于指示被所述任务依赖的其他所述任务的数量;
在目标任务所包含的条件不被满足的情况下,暂停对所述任务流程的处理,并提示所述目标任务不符合要求;所述目标任务为,不依赖于其它所述任务、且所述任务类型为条件触发型的所述任务;
在所述目标任务所包含的所述条件被满足的情况下,统计所述任务的数量、以及预先获取的各个执行器的状态信息;
依据统计结果,确定所述任务和所述执行器之间的对应关系;
依据所述对应关系,将各个所述任务和所述任务的所述执行要求,发送给对应的所述执行器,使得所述执行器按照所述执行要求执行所述任务。
3.根据权利要求2所述的系统,其特征在于,所述调度模块的数量至少为一个;其中,各个所述调度模块依据预设的分布式协议选取一个所述调度模块,作为主调度节点,其余所述调度模块作为从调度节点。
4.根据权利要求2所述的系统,其特征在于,还包括:
执行器模块,所述执行器模块包括所述执行器;
所述执行器模块,用于在接收到所述任务和所述任务的所述执行要求的情况下,按照所述执行要求执行所述任务,得到任务执行结果,并将所述任务执行结果发送给所述调度模块。
5.根据权利要求4所述的系统,其特征在于,所述执行器模块的数量为至少一个,各个所述执行器模块依据预设的分布式协议选取一个所述执行器模块,作为主执行节点,其余所述执行器模块作为从执行节点。
6.根据权利要求5所述的系统,其特征在于,作为所述主执行节点的所述执行器模块还用于:
获取各个所述执行器模块的状态信息,并将各个所述执行器模块的所述状态信息,发送给所述调度模块。
7.根据权利要求2所述的系统,其特征在于,还包括:
用户接口模块和数据库模块;
所述用户接口模块,用于获取用户通过预设界面输入的所述任务流程,并将所述任务流程发送给所述数据库模块;
所述数据库模块,用于向所述调度模块发送所述任务流程,并存储所述调度模块的状态信息、以及各个所述执行器的所述状态信息。
8.一种任务调度装置,其特征在于,包括:
获取单元,用于获取任务流程;所述任务流程用于指示各个任务的执行要求、以及各个所述任务相互之间的依赖关系,所述执行要求包括所述任务的类型;
拆分单元,用于对所述任务流程进行拆分,得到各个所述任务的依赖参数,所述依赖参数用于指示被所述任务依赖的其他所述任务的数量;
判断单元,用于判断目标任务所包含的条件是否被满足;所述目标任务为,不依赖于其它所述任务、且所述任务类型为条件触发型的所述任务;
提示单元,用于在所述目标任务所包含的所述条件不被满足的情况下,暂停对所述任务流程的处理,并提示所述目标任务不符合要求;
统计单元,用于在所述目标任务所包含的所述条件被满足的情况下,统计所述任务的数量、以及预先获取的各个执行器的状态信息;
确定单元,用于依据统计结果,确定所述任务和所述执行器之间的对应关系;
发送单元,用于依据所述对应关系,将各个所述任务和所述任务的所述执行要求,发送给对应的所述执行器,使得所述执行器按照所述执行要求执行所述任务。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1所述的任务调度方法。
10.一种任务调度设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011052967.6A CN112114956A (zh) | 2020-09-29 | 2020-09-29 | 一种任务调度方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011052967.6A CN112114956A (zh) | 2020-09-29 | 2020-09-29 | 一种任务调度方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112114956A true CN112114956A (zh) | 2020-12-22 |
Family
ID=73797370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011052967.6A Pending CN112114956A (zh) | 2020-09-29 | 2020-09-29 | 一种任务调度方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114956A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749221A (zh) * | 2021-01-15 | 2021-05-04 | 长鑫存储技术有限公司 | 数据任务调度方法、装置、存储介质及调度工具 |
CN112860393A (zh) * | 2021-01-20 | 2021-05-28 | 北京科技大学 | 一种分布式任务调度方法及系统 |
CN113238838A (zh) * | 2021-04-22 | 2021-08-10 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN113342483A (zh) * | 2021-03-16 | 2021-09-03 | 江苏大学 | 一种基于Raft的分布式任务调度系统 |
CN113792292A (zh) * | 2021-09-14 | 2021-12-14 | 山石网科通信技术股份有限公司 | 安全剧本的响应方法、装置、存储介质及处理器 |
CN115509709A (zh) * | 2022-09-30 | 2022-12-23 | 中电金信软件有限公司 | 任务分配方法、装置、电子设备及计算机存储介质 |
CN117311950A (zh) * | 2023-11-28 | 2023-12-29 | 宁德时代新能源科技股份有限公司 | 任务处理方法、任务处理装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870948A (zh) * | 2016-09-28 | 2018-04-03 | 平安科技(深圳)有限公司 | 任务调度方法和装置 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN110888721A (zh) * | 2019-10-15 | 2020-03-17 | 平安科技(深圳)有限公司 | 一种任务调度的方法及相关装置 |
WO2020121840A1 (ja) * | 2018-12-12 | 2020-06-18 | 日立オートモティブシステムズ株式会社 | 演算制御装置 |
-
2020
- 2020-09-29 CN CN202011052967.6A patent/CN112114956A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870948A (zh) * | 2016-09-28 | 2018-04-03 | 平安科技(深圳)有限公司 | 任务调度方法和装置 |
WO2020121840A1 (ja) * | 2018-12-12 | 2020-06-18 | 日立オートモティブシステムズ株式会社 | 演算制御装置 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN110888721A (zh) * | 2019-10-15 | 2020-03-17 | 平安科技(深圳)有限公司 | 一种任务调度的方法及相关装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749221A (zh) * | 2021-01-15 | 2021-05-04 | 长鑫存储技术有限公司 | 数据任务调度方法、装置、存储介质及调度工具 |
CN112860393A (zh) * | 2021-01-20 | 2021-05-28 | 北京科技大学 | 一种分布式任务调度方法及系统 |
CN112860393B (zh) * | 2021-01-20 | 2024-03-15 | 北京科技大学 | 一种分布式任务调度方法及系统 |
CN113342483A (zh) * | 2021-03-16 | 2021-09-03 | 江苏大学 | 一种基于Raft的分布式任务调度系统 |
CN113342483B (zh) * | 2021-03-16 | 2024-05-10 | 江苏大学 | 一种基于Raft的分布式任务调度系统 |
CN113238838A (zh) * | 2021-04-22 | 2021-08-10 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN113792292A (zh) * | 2021-09-14 | 2021-12-14 | 山石网科通信技术股份有限公司 | 安全剧本的响应方法、装置、存储介质及处理器 |
CN115509709A (zh) * | 2022-09-30 | 2022-12-23 | 中电金信软件有限公司 | 任务分配方法、装置、电子设备及计算机存储介质 |
CN117311950A (zh) * | 2023-11-28 | 2023-12-29 | 宁德时代新能源科技股份有限公司 | 任务处理方法、任务处理装置、电子设备及存储介质 |
CN117311950B (zh) * | 2023-11-28 | 2024-04-26 | 宁德时代新能源科技股份有限公司 | 任务处理方法、任务处理装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112114956A (zh) | 一种任务调度方法、装置和系统 | |
CN107688496B (zh) | 任务分布式处理方法、装置、存储介质和服务器 | |
EP3432159B1 (en) | Garbage collection method and device | |
US10924538B2 (en) | Systems and methods of monitoring software application processes | |
CN105045832A (zh) | 一种数据采集方法及装置 | |
CN115001956B (zh) | 服务器集群的运行方法、装置、设备及存储介质 | |
CN112231108A (zh) | 任务处理方法、装置、计算机可读存储介质及服务器 | |
CN112418794B (zh) | 一种业务流转的方法及装置 | |
CN111209110A (zh) | 一种实现负载均衡的任务调度管理方法、系统和存储介质 | |
CN110750343B (zh) | 集群系统定时任务调度控制方法及集群系统 | |
CN110955514A (zh) | 提高Linux业务进程利用率的方法、系统及计算机可读介质 | |
CN106506278B (zh) | 一种服务可用性监控方法及装置 | |
CN112865992A (zh) | 分布式主从系统中主节点的切换方法、装置和计算机设备 | |
CN112035326A (zh) | 基于集群节点互检的异常节点任务处理方法及装置 | |
CN114244642B (zh) | 设备的控制方法及其装置、计算机可读存储介质、处理器 | |
CN107025129B (zh) | 一种数据处理方法以及装置 | |
CN112865995A (zh) | 分布式主从系统 | |
CN109697117B (zh) | 终端控制方法、装置以及计算机可读存储介质 | |
CN113302593A (zh) | 任务处理方法、装置、系统、电子设备及存储介质 | |
CN107729207B (zh) | 一种应用程序主线程的监控方法及装置 | |
CN114327817A (zh) | 一种任务分片方法、装置和电子设备 | |
CN111367648A (zh) | 资源分配的方法和装置 | |
CN112463348B (zh) | 一种定时任务处理方法及装置 | |
CN115904650A (zh) | Linux系统下的定时任务监管方法及装置 | |
CN110737520B (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 |