CN112650573B - 一种任务调度方法和装置 - Google Patents
一种任务调度方法和装置 Download PDFInfo
- Publication number
- CN112650573B CN112650573B CN202011640281.9A CN202011640281A CN112650573B CN 112650573 B CN112650573 B CN 112650573B CN 202011640281 A CN202011640281 A CN 202011640281A CN 112650573 B CN112650573 B CN 112650573B
- Authority
- CN
- China
- Prior art keywords
- node
- instance
- node instance
- nodes
- token value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012216 screening Methods 0.000 claims abstract description 35
- 238000012790 confirmation Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种任务调度方法和装置,根据目标任务的结点配置信息生成包括计数令牌值的结点实例。从待调度的结点实例中筛选出计数令牌值为零的第一结点实例进行调度;当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的计数令牌值。更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量,若更新后的计数令牌值为零,表示子结点对应的父结点全部执行完毕,可以执行该子结点,故从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将第二结点实例作为第一结点实例重新执行当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤,极大地提高了筛选速度。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种任务调度方法和装置。
背景技术
任务调度系统是能够实现跨系统平台、覆盖各种程序类型、可扩展的统一任务调度系统。任务调度系统按照任务结点预先设定的执行条件,自动调度结点执行并反馈结点相关运行信息,实现批量任务结点执行过程的监控、故障预警和处理能力。
任务调度系统在执行任务时,需要为任务形成结点配置,任务和结点为一对多关系,一个任务可以配置成多个不同的结点,从而实现任务的并发和复用。任务调度系统根据结点的配置信息生成结点实例,对结点实例进行调度。
然而,结点间存在复杂依赖关系,如何从存在依赖关系的结点中快速筛选出可调度结点,对任务调度系统来说是亟需解决的问题。
发明内容
为了解决上述技术问题,本申请提供了一种任务调度方法和装置,避免对所依赖结点实例运行状态的频繁判断,实现对可调度结点的快速筛选,极大地提高了筛选速度。
第一方面,本申请实施例提供一种任务调度方法,所述方法包括:
根据目标任务的结点配置信息生成结点实例,所述结点实例中包括计数令牌值,所述结点配置信息反映结点之间的依赖关系,所述计数令牌值反映了子结点所依赖的父结点的数量;
从待调度的结点实例中筛选出所述计数令牌值为零的第一结点实例进行调度;
当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量;
从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将所述第二结点实例作为所述第一结点实例重新执行当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤。
可选的,所述根据目标任务的结点配置信息生成结点实例时,所述方法还包括:
根据所述结点配置信息对每个子结点上配置的父结点的数量进行统计;
将统计得到的数量添加到结点实例得到计数令牌值。
可选的,所述更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,包括:
获取所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值;
若确定目标子结点的结点实例中包括的计数令牌值大于零,将所述目标子结点的结点实例中包括的计数令牌值减1。
可选的,若更新后的计数令牌值为零的结点实例包括多个,所述从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,包括:
根据结点实例的调度时间和/或确认指令选择第二结点实例进行调度。
可选的,所述第一结点实例和所述第二结点实例在被调度前的状态为初始态。
第二方面,本申请实施例提供一种任务调度装置,所述装置包括:
生成单元,用于根据目标任务的结点配置信息生成结点实例,所述结点实例中包括计数令牌值,所述结点配置信息反映结点之间的依赖关系,所述计数令牌值反映了子结点所依赖的父结点的数量;
筛选单元,用于从待调度的结点实例中筛选出所述计数令牌值为零的第一结点实例进行调度;
更新单元,用于当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量;
所述筛选单元,还用于从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将所述第二结点实例作为所述第一结点实例重新触发所述更新单元执行当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤。
可选的,所述装置还包括:
统计单元,用于在所述生成单元根据目标任务的结点配置信息生成结点实例时,根据所述结点配置信息对每个子结点上配置的父结点的数量进行统计;
所述生成单元,还用于将统计得到的数量添加到结点实例得到计数令牌值。
可选的,所述更新单元,用于:
获取所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值;
若确定目标子结点的结点实例中包括的计数令牌值大于零,将所述目标子结点的结点实例中包括的计数令牌值减1。
可选的,若更新后的计数令牌值为零的结点实例包括多个,所述筛选单元,具体用于:
根据结点实例的调度时间和/或确认指令选择第二结点实例进行调度。
可选的,所述第一结点实例和所述第二结点实例在被调度前的状态为初始态。
由上述技术方案可以看出,本申请提供的任务调度方法,可以根据目标任务的结点配置信息生成结点实例,结点实例中包括计数令牌值,结点配置信息反映结点之间的依赖关系,计数令牌值反映了子结点所依赖的父结点的数量;从待调度的结点实例中筛选出计数令牌值为零的第一结点实例进行调度;当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值。由于更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量,若更新后的计数令牌值为零,表示子结点对应的父结点全部执行完毕,可以执行该子结点,故可以从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将第二结点实例作为第一结点实例重新执行当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤。该方法通过将结点间依赖关系转化为计数令牌,从而依据计数令牌值确定子结点对应的父结点是否全部执行完毕,进而筛选出可调度结点,避免对所依赖结点实例运行状态的频繁判断,实现对可调度结点的快速筛选,极大地提高了筛选速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种任务调度方法的流程图;
图2为本申请实施例提供的结点之间依赖关系的示例图;
图3为本申请实施例提供的各个结点实例对应的计数令牌值示例图;
图4为本申请实施例提供的更新后的计数令牌值示例图;
图5为本申请实施例提供的更新后的计数令牌值示例图;
图6为本申请实施例提供的各个状态间相互转化的状态机示例图;
图7为本申请实施例提供的一种任务调度装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请实施例可能涉及得到的名词进行解释:
任务调度系统:一种软件系统,能够按照预设的执行条件,调起分布在不同服务器、平台中的程序,并对整个调度生命周期进行管理的系统。
任务:一次性处理完整业务逻辑,一般需要消耗较多资源或较长时间的程序。
结点:任务程序的静态配置,一个结点关联一个任务以及任务的执行条件等信息。
结点实例:根据结点配置信息生成供任务调度系统实际进行调度的实例。
父结点:结点运行存在先后依赖关系时,先执行的结点。
子结点:结点运行存在先后依赖关系时,后执行的结点,需等待父结点执行结束后才可执行。
结点间存在复杂依赖关系,如何从存在依赖关系的结点中快速筛选出可调度结点,对任务调度系统来说是亟需解决的问题。
为了解决上述技术问题,本申请提供一种任务调度方法,该方法可以根据目标任务的结点配置信息生成结点实例,结点实例中包括计数令牌值,结点配置信息反映结点之间的依赖关系,计数令牌值反映了子结点所依赖的父结点的数量;从待调度的结点实例中筛选出计数令牌值为零的第一结点实例进行调度;当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值;从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将第二结点实例作为第一结点实例重新执行当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤。该方法通过将结点间依赖关系转化为计数令牌,从而依据计数令牌值确定子结点对应的父结点是否全部执行完毕,进而筛选出可调度结点,避免对所依赖结点实例运行状态的频繁判断,实现对可调度结点的快速筛选,极大地提高了筛选速度。
本申请实施例提供的方法可以应用于数据处理设备,数据处理设备上可以部署任务调度系统,该数据处理设备可以是终端设备,终端设备例如可以是智能终端、计算机、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑等设备。
该数据处理设备还可以是服务器,服务器可以是独立的服务器,也可以是集群中的服务器。
接下来,将结合附图对本申请提供的任务调度方法进行介绍。参见图1所示,所示方法包括:
S101、根据目标任务的结点配置信息生成结点实例。
用户通过任务调度系统提供的功能,将任务的名称、路径、所在服务器、触发时间、依赖的父任务等信息配置到任务调度系统中,形成结点配置信息,任务和结点为一对多关系,一个任务可以配置成多个不同的结点,从而实现任务的并发和复用。任务调度系统根据结点配置信息生成结点实例,对结点实例进行调度。
其中,结点实例中包括计数令牌值,结点配置信息反映结点之间的依赖关系,所述计数令牌值反映了子结点所依赖的父结点的数量。
需要说明的是,在本实施例中,根据目标任务的结点配置信息生成结点实例时结点实例中的计数令牌值可以是进行初始化得到的,即对计数令牌进行初始化。其具体过程可以是用户在任务调度系统中配置结点时同时配置该结点所依赖的父结点,此时该结点为父结点的子结点。然后,任务调度系统初始化结点实例时根据结点配置信息对每个子结点上配置的父结点的数量进行统计,将统计得到的数量添加到结点实例的计数令牌中得到计数令牌值,从而实现对计数令牌的初始化,此时的计数令牌值为该结点所依赖的父结点个数。
其中,结点配置信息中所反映的依赖关系可以如图2所示,图2中以结点A、结点B、结点C、结点D为例,通过图2所示的依赖关系可以看出结点A为结点C的父结点,结点A和结点B为结点D的父结点。
基于图2所示的依赖关系得到的配置信息生成结点实例时,对结点实例中的计数令牌值进行初始化,得到的各个结点实例对应的计数令牌值如图3所示。其中,结点A对应的结点实例中计数令牌值为0,即结点A的父结点的数量为0;结点B对应的结点实例中计数令牌值为0,即结点B的父结点的数量为0;结点C对应的结点实例中计数令牌值为1,即结点C的父结点的数量为1;结点D对应的结点实例中计数令牌值为2,即结点D的父结点的数量为2。
S102、从待调度的结点实例中筛选出所述计数令牌值为零的第一结点实例进行调度。
以图3所示的计数令牌值为例,在调度开始时,可以通过查找选出计数令牌值为0,即已获得可调度令牌的结点A和结点B,进行结点对应任务的调起。而结点C、D由于计数令牌值不为零,不会被筛选出来。此时,第一结点实例为结点A和结点B对应的结点实例。
S103、当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值。
在图3所示的计数令牌值的基础上,若选择结点A和结点B的结点实例作为第一结点实例进行调度,当结点A和结点B的结点实例执行结束后,可以更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量。
对于一个结点来说,其对应的父结点全部执行完毕,则可以执行该结点。而对计数令牌值进行更新相当于实时记录子结点对应的未执行完毕的父结点数量,而每执行完毕一个父结点,表示其父结点数量减少一个。因此,在一种可能的实现方式中,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的方式为获取第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,若确定目标子结点的结点实例中包括的计数令牌值大于零,将目标子结点的结点实例中包括的计数令牌值减1。
需要说明的是,由于结点A和结点B的结点实例可能不会同时执行结束,故二者分别对应的计数令牌值的更新也可能存在先后顺序。假设结点A的结点实例先执行结束,计数令牌更新功能找到结点A所有的子结点,对所有子结点的计数令牌值减1。在图3所示的计数令牌值的基础上,此时更新后的计数令牌值如图4所示。由于结点C和结点D是结点A的子结点,结点C和结点D的计数令牌值都大于0,即结点C和结点D都是目标子结点,因此结点C计数令牌值减1变为0,结点D计数令牌值减1变为1。
同样,当结点B的结点实例执行结束后,对结点B的所有子结点计数令牌值减1,在图3所示的计数令牌值的基础上,此时更新后的计数令牌值如图5所示。由于结点C和结点D是结点A的子结点,而只有结点D(即目标子结点)的计数令牌值大于0,因此结点D计数令牌值减1变为0。
S104、从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将所述第二结点实例作为所述第一结点实例重新执行当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤。
在得到更新后的计数令牌值后,若更新后的计数令牌值为零,表示子结点对应的父结点全部执行完毕,可以执行该子结点,故可以通过结点筛选功能从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度。
需要说明的是,在本实施例中可以循环进行结点筛选,故在确定第二结点实例后,还可以将第二结点实例作为第一结点实例重新执行S103的步骤,以继续筛选其他可调度的结点实例。
若S103中得到的更新后的计数令牌值如图4所示,则结点C对应的结点实例可被筛选出来作为第二结点实例进行调度;若S103中得到的更新后的计数令牌值如图5所示,则结点D也获得可调度令牌,结点D对应的结点实例可被筛选出来作为第二结点实例进行调度。
需要说明的是,若更新后的计数令牌值为零的结点实例包括多个,S104的一种可能实现方式可以是根据结点实例的调度时间和/或确认指令选择第二结点实例进行调度。
例如,某些结点实例仅在特定的调度时间才可被调度,若该结点实例的更新后的计数令牌值为0,且当前时间为该结点实例的调度时间,则可以将该结点实例作为第二结点实例进行调度;若该结点实例的更新后的计数令牌值为0,但是当前时间未达到该结点实例的调度时间,则该结点实例无法作为第二结点实例进行调度。
又如,在得到更新后的计数令牌值为0的结点实例后,可以向用户确认是否可以调度该结点实例,若用户确认可以调度该结点实例则可以触发确认指令,以便将该结点实例作为第二结点实例进行调度。
需说明的是,结点实例在整个调度过程中的状态包括初始态、运行中、成功、失败,各个状态间相互转化的状态机如图6所示。其中,初始态为结点实例未被调度执行所处的状态,例如第一结点实例和第二结点实例在被调度前的状态为初始态。运行中可以为结点实例被调度执行过程中所处的状态。在结点实例执行结束后,执行成功则状态为成功,执行失败则状态为失败。
由上述技术方案可以看出,本申请提供的任务调度方法,可以根据目标任务的结点配置信息生成结点实例,结点实例中包括计数令牌值,结点配置信息反映结点之间的依赖关系,计数令牌值反映了子结点所依赖的父结点的数量;从待调度的结点实例中筛选出计数令牌值为零的第一结点实例进行调度;当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值。由于更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量,若更新后的计数令牌值为零,表示子结点对应的父结点全部执行完毕,可以执行该子结点,故可以从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将第二结点实例作为第一结点实例重新执行当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤。该方法通过将结点间依赖关系转化为计数令牌,从而依据计数令牌值确定子结点对应的父结点是否全部执行完毕,进而筛选出可调度结点,避免对所依赖结点实例运行状态的频繁判断,实现对可调度结点的快速筛选,极大地提高了筛选速度。
可以理解的是,与相关技术中自上而下的调度方式相比,由于自上而下的调度方式父结点执行结束后,触发子结点执行,该方法仅能提供对一个父结点有多个子结点的支持,而对于一个子结点有多个父结点的情况,一个父结点执行结束后,并不知道其他父结点是否执行结束,故无法触发子结点执行,因此,不支持一个子结点有多个父结点的情况。而本申请实施例提供的任务调度方法通过将结点间依赖关系转化为计数令牌,使得进行结点实例筛选时无需关注结点间实际的依赖关系,能够支持结点间存在一父多子、一子多父等复杂依赖关系时可调度结点实例的筛选。
另外,与相关技术中提供的由下而上的调度方式相比,由于由下而上的调度方式需要任务调度系统在每个结点进行调度前,均需要判断该结点所依赖的父结点是否已执行完毕。当有多个子结点依赖共同父结点时,例如结点C、D均依赖于结点A、B,则会在执行C、D结点前均需判断父结点A、B是否已执行完毕,出现重复对父结点执行状态进行判断的情况,如果任务调度系统中存在有大量相同父结点的结点依赖关系时,势必造成系统计算资源浪费,调度效率下降。而本申请实施例提供的任务调度方法通过将结点间依赖关系转化为计数令牌,使得进行结点实例筛选时无需关注结点间实际的依赖关系,只需通过查询拥有可调度令牌的结点实例即可,避免对所依赖结点实例运行状态的频繁判断,极大的提高了筛选速度。
基于前述实施例提供的任务调度方法,本申请实施例还提供一种任务调度装置,参见图7,所述装置包括:
生成单元701,用于根据目标任务的结点配置信息生成结点实例,所述结点实例中包括计数令牌值,所述结点配置信息反映结点之间的依赖关系,所述计数令牌值反映了子结点所依赖的父结点的数量;
筛选单元702,用于从待调度的结点实例中筛选出所述计数令牌值为零的第一结点实例进行调度;
更新单元703,用于当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量;
所述筛选单元702,还用于从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将所述第二结点实例作为所述第一结点实例重新触发所述更新单元执行当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤。
可选的,所述装置还包括:
统计单元,用于在所述生成单元根据目标任务的结点配置信息生成结点实例时,根据所述结点配置信息对每个子结点上配置的父结点的数量进行统计;
所述生成单元,还用于将统计得到的数量添加到结点实例得到计数令牌值。
可选的,所述更新单元,用于:
获取所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值;
若确定目标子结点的结点实例中包括的计数令牌值大于零,将所述目标子结点的结点实例中包括的计数令牌值减1。
可选的,若更新后的计数令牌值为零的结点实例包括多个,所述筛选单元,具体用于:
根据结点实例的调度时间和/或确认指令选择第二结点实例进行调度。
可选的,所述第一结点实例和所述第二结点实例在被调度前的状态为初始态。
由上述技术方案可以看出,本申请提供的任务调度装置,可以根据目标任务的结点配置信息生成结点实例,结点实例中包括计数令牌值,结点配置信息反映结点之间的依赖关系,计数令牌值反映了子结点所依赖的父结点的数量;从待调度的结点实例中筛选出计数令牌值为零的第一结点实例进行调度;当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值。由于更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量,若更新后的计数令牌值为零,表示子结点对应的父结点全部执行完毕,可以执行该子结点,故可以从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将第二结点实例作为第一结点实例重新执行当第一结点实例执行结束后,更新第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤。该方法通过将结点间依赖关系转化为计数令牌,从而依据计数令牌值确定子结点对应的父结点是否全部执行完毕,进而筛选出可调度结点,避免对所依赖结点实例运行状态的频繁判断,实现对可调度结点的快速筛选,极大地提高了筛选速度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (4)
1.一种任务调度方法,其特征在于,所述方法包括:
根据目标任务的结点配置信息生成结点实例时,根据所述结点配置信息对每个子结点上配置的父结点的数量进行统计;将统计得到的数量添加到结点实例得到计数令牌值;所述结点实例中包括计数令牌值,所述结点配置信息反映结点之间的依赖关系,所述计数令牌值反映了子结点所依赖的父结点的数量;
从待调度的结点实例中筛选出所述计数令牌值为零的第一结点实例进行调度;
当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量;
所述更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,包括:获取所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值;若确定目标子结点的结点实例中包括的计数令牌值大于零,将所述目标子结点的结点实例中包括的计数令牌值减1;
从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将所述第二结点实例作为所述第一结点实例重新执行当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤;
若更新后的计数令牌值为零的结点实例包括多个,所述从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,包括:根据结点实例的调度时间和/或确认指令选择第二结点实例进行调度。
2.根据权利要求1所述的方法,其特征在于,所述第一结点实例和所述第二结点实例在被调度前的状态为初始态。
3.一种任务调度装置,其特征在于,所述装置包括:
生成单元,用于根据目标任务的结点配置信息生成结点实例,所述结点实例中包括计数令牌值,所述结点配置信息反映结点之间的依赖关系,所述计数令牌值反映了子结点所依赖的父结点的数量;
统计单元,用于在所述生成单元根据目标任务的结点配置信息生成结点实例时,根据所述结点配置信息对每个子结点上配置的父结点的数量进行统计;
所述生成单元,还用于将统计得到的数量添加到结点实例得到计数令牌值;
筛选单元,用于从待调度的结点实例中筛选出所述计数令牌值为零的第一结点实例进行调度;
更新单元,用于当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值,更新后的计数令牌值表示子结点对应的未执行完毕的父结点数量;
所述更新单元,用于:获取所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值;若确定目标子结点的结点实例中包括的计数令牌值大于零,将所述目标子结点的结点实例中包括的计数令牌值减1;
所述筛选单元,还用于从待调度的结点实例中筛选出更新后的计数令牌值为零的第二结点实例进行调度,并将所述第二结点实例作为所述第一结点实例重新触发所述更新单元执行当所述第一结点实例执行结束后,更新所述第一结点实例对应的所有子结点的结点实例中包括的计数令牌值的步骤;
若更新后的计数令牌值为零的结点实例包括多个,所述筛选单元,具体用于:根据结点实例的调度时间和/或确认指令选择第二结点实例进行调度。
4.根据权利要求3所述的装置,其特征在于,所述第一结点实例和所述第二结点实例在被调度前的状态为初始态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640281.9A CN112650573B (zh) | 2020-12-31 | 2020-12-31 | 一种任务调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640281.9A CN112650573B (zh) | 2020-12-31 | 2020-12-31 | 一种任务调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112650573A CN112650573A (zh) | 2021-04-13 |
CN112650573B true CN112650573B (zh) | 2024-04-12 |
Family
ID=75366962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011640281.9A Active CN112650573B (zh) | 2020-12-31 | 2020-12-31 | 一种任务调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650573B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559014A (zh) * | 2012-05-09 | 2014-02-05 | 辉达公司 | 用于处理嵌套流事件的方法和系统 |
CN106354557A (zh) * | 2016-08-29 | 2017-01-25 | 佛山市美的清湖净水设备有限公司 | 基于时间片任务调度系统的家电及其控制方法、控制器 |
CN108037991A (zh) * | 2017-12-26 | 2018-05-15 | 中山大学 | 一种支持作业依赖关系的定时作业调度方法及系统 |
CN110704173A (zh) * | 2019-09-29 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 任务调度方法、调度系统、电子设备及计算机存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101553649B1 (ko) * | 2013-05-13 | 2015-09-16 | 삼성전자 주식회사 | 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법 |
-
2020
- 2020-12-31 CN CN202011640281.9A patent/CN112650573B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559014A (zh) * | 2012-05-09 | 2014-02-05 | 辉达公司 | 用于处理嵌套流事件的方法和系统 |
CN106354557A (zh) * | 2016-08-29 | 2017-01-25 | 佛山市美的清湖净水设备有限公司 | 基于时间片任务调度系统的家电及其控制方法、控制器 |
CN108037991A (zh) * | 2017-12-26 | 2018-05-15 | 中山大学 | 一种支持作业依赖关系的定时作业调度方法及系统 |
CN110704173A (zh) * | 2019-09-29 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 任务调度方法、调度系统、电子设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112650573A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684057B (zh) | 任务处理方法、装置和存储介质 | |
CN111176697A (zh) | 服务实例部署方法、数据处理方法及集群联邦 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN108008950B (zh) | 一种用户界面更新的实现方法及装置 | |
CN101778004B (zh) | 用于执行基于门限值调度的设备管理的终端和方法 | |
CN107341054B (zh) | 任务执行方法、装置及计算机可读存储介质 | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN109871290B (zh) | 应用于Java的调用堆栈追踪方法、装置和存储介质 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN111190732A (zh) | 定时任务处理系统及方法、存储介质和电子设备 | |
US8224933B2 (en) | Method and apparatus for case-based service composition | |
CN114968272A (zh) | 一种算法运行方法、装置、设备、存储介质 | |
CN112667383B (zh) | 一种任务执行及调度方法、系统、装置、计算设备及介质 | |
CN109725916B (zh) | 流处理的拓扑结构更新系统和方法 | |
CN111930492B (zh) | 基于解耦任务数据模型的任务流调度方法与系统 | |
CN112650573B (zh) | 一种任务调度方法和装置 | |
CN117149378A (zh) | 智能汽车操作系统的任务调度方法、装置、设备及介质 | |
CN111147541A (zh) | 基于参数服务器的节点处理方法、装置、设备及存储介质 | |
CN115632944A (zh) | 一种节点配置方法、装置、设备、可读存储介质及服务器 | |
CN112148420B (zh) | 基于容器技术的异常任务处理方法、服务器及云平台 | |
CN112612804A (zh) | 一种服务治理参数更新方法及装置 | |
CN112612604A (zh) | 基于Actor模型的任务调度方法、装置 | |
CN111897521B (zh) | 一种基于微服务架构的任务处理方法及相关装置 | |
CN117453665B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN113032131B (zh) | 基于Redis的分布式定时调度系统和方法 |
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 |