CN111708628A - 任务调度管理方法、装置、设备及存储介质 - Google Patents
任务调度管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111708628A CN111708628A CN202010582623.XA CN202010582623A CN111708628A CN 111708628 A CN111708628 A CN 111708628A CN 202010582623 A CN202010582623 A CN 202010582623A CN 111708628 A CN111708628 A CN 111708628A
- Authority
- CN
- China
- Prior art keywords
- task
- current
- tasks
- execution
- dependency relationship
- 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
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及人工智能,公开了一种任务调度管理方法、装置、设备及存储介质,通过读取任务调度树以及对应任务配置表和任务执行表,判断任务调度树中是否存在当期任务;若是,确定各当期任务之间的依赖关系和对应执行方法,并判断依赖关系和任务对应执行方法是否有修改。若是,则重置所有依赖于各当期任务的其他任务,通过各当期任务的执行顺序与最早可开始时间,判断各当期任务是否达到可执行条件,若是,则依次执行并备份。此外,本发明还涉及区块链技术,任务调度树以及对应的任务配置表和任务执行表可存储于区块链中。本发明在进行多任务调度时,能够将任务依赖与最大可执行时间的相结合,自动重置修正异常参数,提升数据处理效率。
Description
技术领域
本发明涉及任务调度管理技术,应用于区块链领域中,尤其涉及一种任务调度管理方法、装置、设备及存储介质。
背景技术
随着技术的进步和大数据的发展,很多企业关注的业务指标也越来越多,为便于进行大型业务分析,因此构建了多层级多指标的业务指标分析平台,该平台是基于分层处理方式搭建的,在这个处理过程中,需要将明细或底层一层一层由上处理得到业务需要的展示数据;在这个处理过程中,中下游数据(下级任务的执行)需要依赖上游数据(上级任务)的处理结果,且不同的指标加工方式和依赖关系并不完全相同。
在现有技术中,在业务指标分析平台数据涉及指标数量和需求不断增加,且指标变动频繁情况下,对应的Kettle任务量也大量增加,由于各任务之间的复杂依赖关系和对应的程序最早可执行时间,导致Kettle无法在完成任务调用的同时合理配置有依赖关系的任务,无法完成复杂依赖任务的程序调度,导致业务指标分析平台中数据的处理效率低。
发明内容
本发明的主要目的在于解决经业务指标分析平台在进行多任务调度时,数据处理效率低下的技术问题。
为实现上述目的,本发明第一方面提供了一种任务调度管理方法,包括:
读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
若存在多个当期任务,则基于所述任务执行表中的配置信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
判断所述依赖关系和所述执行方法是否有修改,得到判断结果;
若所述判断结果为依赖关系和执行方法中至少有一个被修改,则重置所述当期任务以及与所述当期任务存在依赖关系的子任务的运行状态;
基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件;
若是,则依次执行各当期任务,并将各当期任务备份至预置任务备份表中。
可选的,在本发明第一方面的第一种实现方式中,所述根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务之前,还包括:
获取各历史期任务对应的任务日志表;
基于所述任务日志表,判断上期任务是否执行成功;
若所述上期任务执行成功,则执行判断所述任务调度树中是否存在多个当期任务的步骤;
若所述上期任务执行失败,则将所述上期任务重置为初始状态。
可选的,在本发明第一方面的第二种实现方式中,所述任务调度管理方法还包括:若所述任务调度树中不存在当期任务,则将所述任务配置表中任务的配置信息写入所述任务执行表。
可选的,在本发明第一方面的第三种实现方式中,所述任务配置表中的配置信息包括各当期任务之间的第一依赖关系和各当期任务对应的第一执行方法,所述任务执行表中的配置信息包括各当期任务之间的第二依赖关系和各当期任务对应的第二执行方法;
所述判断所述依赖关系和所述执行方法是否有修改,得到判断结果包括:
将所述任务配置表中的第一依赖关系与所述任务执行表中的第二依赖关系进行比对,以及将所述任务配置表中的第一执行方法与所述任务执行表中的第二执行方法进行比对,得到比对结果;
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果均一致,则确定则确定各当期任务之间的依赖关系和各当期任务对应的执行方法没有修改;
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果至少有一个不一致,则确定各当期任务之间的依赖关系和各当期任务对应的执行方法有修改。
可选的,在本发明第一方面的第四种实现方式中,所述基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件包括:
基于所述任务配置表中所有任务之间的依赖关系,利用递归算法计算每一任务在所述任务调度树中的任务深度;
根据所述任务深度,确定各当期任务的执行顺序;
从所述任务配置表中获取各当期任务的任务最早可开始时间;
基于所述执行顺序与所述任务最早可开始时间,判断各当期任务是否达到可执行条件,其中,所述可执行条件是任务达到最早可开始时间且所述任务依赖的上级任务运行成功。
可选的,在本发明第一方面的第五种实现方式中,所述基于所述执行顺序与所述任务最早可开始时间,判断各当期任务是否达到可执行条件包括:
基于所述当期任务的执行顺序和所述任务配置表中各当期任务的任务最早可开始时间,确定各当期任务是否已经达到程序可开始执行的最早时间;
若各当期任务是否已经达到程序可开始执行的最早时间,则判断各当期任务所依赖的其他任务是否都已经执行完成;
若各当期任务已经达到程序可开始执行的最早时间,且各当期任务所依赖的其他任务都已经执行完成,则确定各当期任务达到可执行条件。
可选的,在本发明第一方面的第五种实现方式中,所述若各当期任务达到可执行条件,则依次执行各当期任务,并将各当期任务备份至预置任务备份表中包括:
基于各当期任务的执行顺序,依次执行各当期任务并更新各当期任务的运行状态;
基于各当期任务的运行状态,判断各当期任务的是否执行成功;
若各当期任务执行成功,则将各当期任务备份至预置任务备份表。
本发明第二方面提供了一种任务调度管理装置,包括:
读取模块,用于读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
第一判断模块,用于根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
确定模块,用于当在当期任务时,基于所述任务执行表中的配置信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
第二判断模块,用于判断所述依赖关系和所述执行方法是否有修改,得到判断结果;
第一重置模块,用于当所述判断结果为依赖关系和执行方法中至少有一个被修改,重置所述当期任务以及与所述当期任务存在依赖关系的子任务的运行状态;
第三判断模块,用于基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件;
备份模块,用于当各当期任务达到可执行条件,依次执行各当期任务,并将各当期任务备份至预置任务备份表中。
可选的,在本发明第二方面的第一种实现方式中,所述任务调度管理装置,还包括::
获取模块,用于获取各历史期任务对应的任务日志表;
第四判断模块,用于基于所述任务日志表,判断上期任务是否执行成功;
执行模块,用于当所述上期任务执行成功,执行当期任务;
第二重置模块,用于当所述上期任务执行失败,将上期任务重置为初始状态任务;
写入模块,用于当所述任务调度树中不存在当期任务时,将所述任务配置表中任务的配置信息写入所述任务执行表。
可选的,在本发明第二方面的第二种实现方式中,所述第二判断模块具体用于:
将所述任务配置表中的第一依赖关系与所述任务执行表中的第二依赖关系进行比对,以及将所述任务配置表中的第一执行方法与所述任务执行表中的第二执行方法进行比对,得到比对结果;
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果均一致,则确定则确定各当期任务之间的依赖关系和各当期任务对应的执行方法没有修改;
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果至少有一个不一致,则确定各当期任务之间的依赖关系和各当期任务对应的执行方法有修改。
可选的,在本发明第二方面的第三种实现方式中,所述第三判断模块包括:
计算单元,用于基于所述任务配置表中所有任务之间的依赖关系,利用递归算法计算每一任务在所述任务调度树中的任务深度;
确定单元,用于根据所述任务深度,确定各当期任务的执行顺序;
获取单元,用于从所述任务配置表中获取各当期任务的任务最早可开始时间;
判断单元,用于基于所述执行顺序与所述任务最早可开始时间,判断各当期任务是否达到可执行条件,其中,所述可执行条件是任务达到最早可开始时间且所述任务依赖的上级任务运行成功。
可选的,在本发明第二方面的第四种实现方式中,所述判断单元具体用于:
基于所述当期任务的执行顺序和所述任务配置表中各当期任务的任务最早可开始时间,确定各当期任务是否已经达到程序可开始执行的最早时间;
若各当期任务是否已经达到程序可开始执行的最早时间,则判断各当期任务所依赖的其他任务是否都已经执行完成;
若各当期任务已经达到程序可开始执行的最早时间,且各当期任务所依赖的其他任务都已经执行完成,则确定各当期任务达到可执行条件。
可选的,在本发明第二方面的第五种实现方式中,所述备份模块具体用于:
基于各当期任务的执行顺序,依次执行各当期任务并更新各当期任务的运行状态;
基于各当期任务的运行状态,判断各当期任务的是否执行成功;
若各当期任务执行成功,则将各当期任务备份至预置任务备份表。
本发明第三方面提供了一种任务调度管理设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互联;所述至少一个处理器调用所述存储器中的所述指令,以使得所述任务调度管理设备执行上述第一方面提供的任务调度管理方法的步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面提供的任务调度管理方法的步骤。
本发明提供的技术方案中,通过构建任务控制表,在当前存在当期任务的情况下,基于当期任务的依赖关系和执行方法是否发生改变,调整所有依赖于该当期任务的任务的运行状态,根据任务之间的依赖关系,利用递归算法计算调度树中所有任务的深度,以确定所有当期任务的执行顺序,当所有当期任务达到程序可以开始运行的最早时间且依赖于该当期任务的所有子任务均运行完毕,根据当期任务的执行顺序,依次执行所有当期任务,并更新对应的任务状态,将任务执行信息备份到log表中。本方案应用于区块链领域,能够通过本方案在通过经业务指标分析平台进行多任务调度时,解决无法将任务依赖与最大可执行时间的相结合的问题,自动重置修正异常参数,从而提高数据处理效率。
附图说明
图1为本发明实施例中任务调度管理方法的第一个实施例示意图;
图2为本发明实施例中任务调度管理方法中任务调度树的一实施例示意图;
图3为本发明实施例中任务调度管理方法的第二个实施例示意图;
图4为本发明实施例中任务调度管理方法的第三个实施例示意图;
图5为本发明实施例中任务调度管理装置的第一个实施例示意图;
图6为本发明实施例中任务调度管理装置的第二个实施例示意图;
图7为本发明实施例中任务调度管理设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种任务调度管理方法、装置、设备及存储介质,用于解决目前系统数据量过大而造成的系统压力增大,并发查询能力低而导致用户体验不佳的技术问题,减少系统压力,增加并发查询能力,获得更好的用户体验。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例进行描述。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明实施例中,所述任务调度管理方法由计算机或服务器执行。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中任务调度管理方法的第一个实施例包括:
101、读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
本实施例中,任务调度树就是任务调度链,顾名思义,任务调度树像树一样,从根基开始。以一个任务作为初始,然后慢慢向上扩散,一步一步的完成任务。只有当前任务完成,才能开始下一个任务。当前任务做完了,还有后续任务,每一个任务里面还有分支,最终形成连接在一起的庞大的任务体系。
本实施例中,也可以把任务调度树看做是一个任务调度系统。任务调度树中的所有任务之间是有依赖关系的,根据运行信息的不同可以分为子任务和父任务。任务依赖关系是指任务和任务之间的关系,一个任务必须依赖另一个任务执行成功后才能开始执行。
本实施例中,任务配置表中包含任务调度数中所有任务的基本信息,比如任务的序号、节点号、任务名称、任务内容、下达时间、开始时间、计划结束时间、实际结束时时间、任务运行状态等。
本实施例中,任务执行表包含调度任务调度树中所有任务时,用到的实时信息,比如任务代码、运行时间、任务描述、依赖的任务(任务之间的依赖关系就是根据这个得到的)、任务方法名、任务状态、任务类型、任务是否可用、任务最早可开始时间、任务结束时间等。
本实施例中,在进行任务调度管理的过程中需要用到很多关于调度树中相关任务的配置信息和运行信息,所以在利用本发明对数据(任务)进行调度管理之前,需要先构建任务配置表(Schedual_config)、任务执行表(Schedual_job)。
102、根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
本实施例中,当期任务是指当前任务调度过程中正在运行处理的任务。根据任务配置表中有关任务的节点号、任务名称、任务内容、下达时间、开始时间、计划结束时间、实际结束时时间、任务运行状态等配置信息和任务控制表在调度任务过程中的任务代码,运行时间,任务描述,依赖的任务,任务方法名,状态,任务类型,任务是否可用,任务最早可开始时间,层级等实时信息,判断任务调度树中是否存在多个当期任务。其中,多个当期任务是指任务调度树在有多个有依赖关系的准备执行的任务。任务调度树中至少存在两个或以上任务,若只存在一个当期任务,那根据任务的最早可执行时间运行该任务即可,不用考虑其他因素。
本实施例中,以图2为例:根据任务配置表中任务的运行信息可知,图2的任务调度树中,任务B和任务F的运行状态为“正在运行”,则代表任务调度树中存在当期任务。若在本次任务调起之前存在当期任务,则结束本次任务,避免线程并发导致(可能会出现)的数据错误。
103、若存在多个当期任务,则基于所述任务执行表中的配置信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
本实施例中,如果存在当期任务,则根据任务执行表中的任务信息,确定各个当期任务之间的依赖关系和对应的执行方法。
本实施例中,若存在当期任务,则根据任务执行表中的任务“依赖关系”这一信息,确定各个当期任务之间的依赖关系,比如,任务调度树中的当期任务为任务B和任务E,根据任务执行表可知,任务B依赖的任务有任务Q、任务W,任务E依赖的任务有任务W、任务R。
本实施例中,根据任务配置表中的任务方法名,状态,任务类型,任务是否可用,任务最早可开始时间,任务层级等,可以确定当期任务需要手工启动还是自动运行对应的执行方法。比如,定时任务执行的三种方法,根据任务的类型,运行时间或者状态,每一个任务都有对应的执行方法,可以是手动启动,也可以在程序启动之后该任务可以自动运行,不需要手工操作。
104、判断所述依赖关系和所述执行方法是否有修改,得到判断结果;
本实施例中,由于任务是配置的,所以在调度过程中包括任务之间的“依赖关系”和任务的“执行方法”在内的配置信息有可能发生变化,变化时只会修改任务任务配置表中的信息,所以每次任务开始时,如果存在当期任务,则将任务配置表中的任务配置信息与任务执行表中的信息进行比对,判断各个当期任务之间的依赖关系和对应的执行方法是否出现变化,避免任务配置信息发生改变而导致的任务运行失败或者任务执行结束得到的计算数据(运行结果)错误。
需要将任务配置表中的任务信息与任务执行表中的任务信息进行对比,并获取判断结果。
以图2为例,在本次任务调起之前,根据任务的运行状态判断上次调起的任务是否全部完成。若任务B和任务E的运行状态为“正在运行”,那么任务B和任务E就是当期任务。根据任务配置表中包括任务“依赖关系”和“执行方法”在内的配置信息与任务执行表中的信息进行比对,分别判断当期任务任务B和任务E的“依赖关系”和“执行方法”是否有修改。此处的“修改”就是发生错误。
以上图图2为例,若任务调度树中的任务B对应的执行方法发生了修改,那么,即使任务B运行成功,得到的数据(运行结果)也是错误的,如果不对这个错误进行纠正,继续运行任务B的子任务任务D和任务E,得到的数据(运行结果)也是错误的。为了避免这种错误出现,需要判断对各个当期任务对应的“依赖关系”和“执行方法”是否发生修改进行判断。若是,则将该任务和依赖于该任务的所有子任务的任务运行状态全部重置(初始化),根据正确的“依赖关系”和“执行方法”重新执行对应任务,避免影响任务调度树中其他任务的正常运行。
105、若所述判断结果为依赖关系和执行方法中至少有一个被修改,则重置所述当期任务以及与所述当期任务存在依赖关系的子任务的运行状态;
本实施例中,根据判断结果,如果当期任务的依赖关系和执行方法发生改变,就重置有变化的任务的运行状态。
以图2为例,如果在任务调度运行的过程中,若任务B包括“依赖关系”和“执行方法”在内的配置信息发生了改变(发生错误),那么,将任务B和依赖于任务B的任务D和任务E的任务运行状态重置,将任务状态恢复初始值,重新运行这些任务。需要注意的是:即使任务C的各种参数均正常,运行成功,任务E的运行状态也要重置。因为任务B的“依赖关系”和对应“执行方法”已经发生变化,得到的运行结果是错误的,注定任务E得到的运行结果也是错误的,所以任务E的运行状态也重置,重新执行。
本实施例中,若各个当期任务之间的依赖关系和/或各个当期任务对应的执行方法有修改,这里说的有修改,其实就是说当期任务之间的依赖关系和/或各个当期任务对应的执行方法(与被修改之前的数据不同)发生了错误,既然当期任务之间的依赖关系和/或各个当期任务对应的执行方法都不是正确的,运行结束得到的结果,当然也是错误的。比如,原本与任务B有依赖关系的分别和任务Q、任务W,但是由于任务调度过程中任务的配置信息发生了改变,导致与任务B有依赖关系的任务也被错误的修改为“任务Q、任务G”或者原本任务B对应的执行方法为“方法A”,被错误的修改为“方法D”,由于这些变化,任务B的在运行时不可能得到正确的结果,或导致与任务B有依赖关系的任务运行错误,得到异常的数据信息,所以,此时需要充值所有依赖于该当期任务的其他任务的运行状态(也就是将任务状态恢复初始值,因为参数有变化,所以任务需要重新执行)。
106、基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件;
本实施例中,根据任务配置表中所有任务之间的依赖关系与任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件。利用递归算法计算所有当期任务在调度树中的任务深度,根据对应任务深度(值)的大小,确定所有当期任务的执行顺序。比如,任务A在调度树中的任务深度越大,说明任务A依赖的任务越多,如果任务A要开始运行,必须等到所有被任务A依赖的任务运行成功之后才可,也就是说,任务A在调度树中的任务深度越大,运行时间就越靠后,任务的执行顺序也就越靠后。
本实施例中,如果任务调度数的层数是1,则表示只有根节点(根任务),此时深度为0,树的深度是指树中结点的最大层次,比如调度树有N层,则他的深度为N,调度树可以理解成一种包含多个有依赖关系的任务的树状数据结构,它有n个有限结点(一个结点对应一个任务)组成一个具有层次关系(多个任务的)集合,每个结点(任务)有零个或多个子结点(任务);没有父结点(任务)的结点称为根结点(根任务);每一个非根结点(任务)有且只有一个父结点(任务);除了根结点外(任务),每个子结点(任务)可以分为多个不相交的子树。
本实施例中,根据任务之间的依赖关系及,利用递归算法计算任务调度树中所有任务的本身,在调度树中的深度。其中,无依赖的任务的深度为0,比如,任务调度树中的根任务。在任务调度树中,除了根任务以外,任何任务都有至少一个父任务;子任务是指相对于父任务而言,任务依赖关系中处于依赖位置的任务。
107、若是,则依次执行各当期任务,并将各当期任务备份至预置任务备份表中,其中,所述可执行条件是任务达到最早可开始时间且所述任务依赖的上级任务运行成功。
本实施例中,若当期任务达到了可执行条件,则根据当期任务的执行顺序以此执行这些当期任务,每一次调度都会执行未完成的任务(直到所有任务运行完成为止),当所有的任务运行成功(任务本身执行完成后会将状态更新为已完成),在调度结束,会对job表中的所有任务进行判断,如果全部任务的运行状态均为已完成,则将所有任务备份至log、也就是,将job中的任务信息,配置、依赖、层级,任务的开始时间、结束时间等备份到log表,供以后查询。
通过构建任务控制表,在当前存在当期任务的情况下,基于当期任务的依赖关系和执行方法是否发生改变,来调整所有依赖于该当期任务的任务的运行状态;根据任务之间的依赖关系,利用递归算法计算调度树中所有任务的深度,以确定所有当期任务的执行顺序;当所有当期任务达到程序可以开始运行的最早时间且依赖于该当期任务依赖的所有子父任务均运行完毕,根据当期任务的执行顺序,依次执行所有当期任务,并更新对应的任务状态。当所有当期任务运行完成,将任务执行信息备份到log表中。本方案应用于区块链领域,通过本方案可以在存在当期任务时调整所有依赖于该当期任务的任务运行状态,并且确定所有当期任务的执行顺序,使得所有当期任务依次执行,从而在多任务调度过程中避免数据异常,提高了数据处理效率。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
可以理解的是,本发明的执行主体可以为任务调度管理装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
请参阅图3,本发明实施例中任务调度管理方法的第二个实施例中,该方法包括:
201、读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
202、获取各历史期任务对应的任务日志表;
本实施例中,获取任务调起日志表。因为任务是定时任务,隔一定时间就会调起来,每次任务调起都会写一个日志表,通过日志表的状态可以判断上一次任务调起是否完成。比如,日志表的状态为“未完成”,则表示上一次任务为完成。
203、基于所述任务日志表,判断上期任务是否执行成功;
本实施例中,根据任务日志表中与任务相关的信息,比如任务运行状态等,判断上期任务(上次调起的任务调度树中的所有任务)是否运行成功。根据上次调起的任务调度树中所有任务的运行状态,对上期任务进行判断,进而进行下一步的操作。
204、若否,则将上期任务重置为初始状态;
若所述上期任务执行成功,则执行判断所述任务调度树中是否存在多个当期任务的步骤;
本实施例中,将未执行成功的上期任务重置为初始状态,就是指,不论上期任务中未运行成功的任务处于什么状态,均一律将任务状态重置,设置为初始状态,目的是为了下一次调起任务时,任务调度树中的任务全部从初始状态正常运行。避免不同期任务调度中的同一任务多线程并发,导致数据异常的情况出现。
本实施例中,根据任务日志表中上一次的任务调起是否全部执行成功,判断上一次任务的状态是否异常。因为,一次调度中会有多个任务,并不能确保每一个任务都处于已完成状态。上次调起的任务调度树中的任务统称为上期任务,如果上一次调度还未完成,则将上一次调度中的任务的设置为初始状态,避免同一任务被多线程调起,从而导致数据异常。比如,在本月10号,调起一次任务,任务调度树一共有150个任务,这些任务会根据任务之间的依赖关系与最早可执行时间,按照各任务的执行顺序依次执行,直到本任务调度树中全部的150个任务执行成功,本月10号调起的这次任务才算运行结束。其中,任务调度树中的任务x(可能因为某些情况),在本月20号即将调起第二次任务的时候还未运行成功。此时,当调起新一次的任务时,就要对上一次(本月10号)调起的任务进行查看,判断上一次调起的任务(任务调度树中的150个任务)是否全部完后,若上期任务全部执行成功,才能执行本次的任务。避免上期任务中的任务x与本期任务中的任务x多线程并发运行,从而数据运行混乱,出现数据异常的情况。比如说,小张和小李同时拿着店铺客户订单给客户发货,就可能会出现漏发,错发,重复发货等错误,导致发货混乱的情况出现。
本实施例中,如果上一次调起的任务全部运行成功,则按照任务的基本信息,执行当期任务。
本实施例中,如果上一次任务异常(包括运行失败和正在运行),则将上一次的任务设置为初始化状态,再开始执行本次调起的任务,避免同一任务多线程并发导致的数据错误出现。
205、若是,根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
206、若存在多个当期任务,则基于所述任务执行表中的配置信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
207、判断所述依赖关系和所述执行方法是否有修改,得到判断结果;
208、若所述判断结果为依赖关系和执行方法中至少有一个被修改,则重置所述当期任务以及与所述当期任务存在依赖关系的子任务的运行状态;
209、基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件;
210、若是,则依次执行各当期任务,并将各当期任务备份至预置任务备份表中。
由上可见,本发明任务调度管理方法通过构建任务控制表,在当前存在当期任务的情况下,基于当期任务的依赖关系和执行方法是否发生改变,调整所有依赖于该当期任务的任务的运行状态,根据任务之间的依赖关系,利用递归算法计算调度树中所有任务的深度,以确定所有当期任务的执行顺序,当所有当期任务达到程序可以开始运行的最早时间且依赖于该当期任务的所有子任务均运行完毕,根据当期任务的执行顺序,依次执行所有当期任务,并更新对应的任务状态,将任务执行信息备份到log表中。本方案应用于区块链领域,本方案用于经业务指标分析平台在进行多任务调度时,解决无法将任务依赖与最大可执行时间的相结合的问题,自动重置修正异常参数,从而提高数据处理效率。
请参阅图4,本发明实施例中任务调度管理方法的第三个实施例中,该方法包括:
301、读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
302、根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
303、若存在多个当期任务,则基于所述任务执行表中的信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
304、将所述任务配置表中的第一依赖关系与所述任务执行表中的第二依赖关系进行比对,以及将所述任务配置表中的第一执行方法与所述任务执行表中的第二执行方法进行比对,得到比对结果;
本实施例中,根据任务配置表中存储的关于任务的数据信息,判断各当期任务之间的依赖关系和各当期任务对应的执行方法是否发生改变。任务是配置的,所以在调度过程中也有可能发生配置变化,变化时只会修改配置表config,所以每次任务开始时需要将配置表config中的信息与任务执行表job的信息进行比对,以判断任务在运行过程中对应的参数信息(比如,任务之间的依赖关系和任务对应的执行方法)是否有改变。如果有改变,则说明参数异常(错误),对应的任务也需要重置为初始状态,重新运行。
305、若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果均一致,则确定则确定各当期任务之间的依赖关系和各当期任务对应的执行方法没有修改;
本实施例中,获取任务配置表中当期任务的依赖关系和当期任务对应的执行方法,为了与任务执行表中该当期任务中的参数信息进行区分,这里,将任务配置表中的任务之间的依赖关系命名为第一依赖关系,任务对应执行方法命名为第一执行方法;同理,将任务执行表中的任务之间的依赖关系命名为第二依赖关系,任务对应执行方法命名为第二执行方法。分别将所述第一依赖关系和所述第一执行方法与所述任务执行表中的第二依赖关系和第二执行方法,进行比对,得到比对结果。
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果至少有一个不一致,则确定各当期任务之间的依赖关系和各当期任务对应的执行方法有修改;
本实施例中,根据得到的比对结果,各当期任务之间的依赖关系和各当期任务对应的执行方法是否有修改,如果比对结果一致,那么就是没修改,如果比对结果不一致,那么对应当期任务的运行(状态或结果)可能会出现异常。
306、若所述判断结果为依赖关系和执行方法中至少有一个被修改,则重置所有依赖于各当期任务的其他任务的运行状态;
307、基于所述任务配置表中所有任务之间的依赖关系,利用递归算法计算每一任务在所述任务调度树中的任务深度;
本实施例中,任务配置表中所有任务之间的依赖关系,利用递归算法计算每一任务在任务调度树中的任务深度。
本实施例中,依赖关系亦可以称“逻辑关系”。指X、Y两个任务中,任务X状态的改变会影响到任务Y,或者说,如果任务X的对象要完成某一操作,必须使用任务Y的对象的某些操作来帮忙。比如,A类使用B类的对象作为操作的参数或者A类用B类的对象作为它的数据成员,但无论是哪种情况,B类在A类中都是以局部变量的形式存在的,A类中有B类型的局部变量,就说A类依赖于B类,A类和B类有依赖关系。
本实施例中,根据获得的任务的运行信息,可确定各任务之间的依赖关系,其中,用于确定任务之间依赖关系的运行信息不限,比如,可以是预先自定义的参数,该参数描述了具有依赖关系的多个任务,则通过该参数可以确定对应任务之间存在依赖关系。
本实施例中,根据所有任务之间的依赖关系,利用递归算法分别计算当期任务在调度树中的任务深度。
308、根据所述任务深度,确定各当期任务的执行顺序;
本实施例中,任务在调度树中的任务深度越大,则意味着该任务在调度树中依赖的任务越多,只有在该任务所依赖的所有上级任务执行成功且该任务达到了程序可开始执行的最早时间,该任务才能开始执行,相应的,任务运行的顺序越靠后。
本实施例中,递归算法(recursionalgorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,是计算机科学中十分重要的一个概念。本实施例中,递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。
309、从所述任务配置表中获取各当期任务的任务最早可开始时间;
本实施例中,根据任务配置表中的参数信息,获取各个当期任务可开始运行的最早时间。
310、基于所述执行顺序与所述任务最早可开始时间,判断各当期任务是否达到可执行条件,其中,所述可执行条件是任务达到最早可开始时间且所述任务依赖的上级任务运行成功;
本实施例中,根据所有当期任务的执行顺序和当期任务的任务最早可开始时间,判断对应当前任务是否达到可执行条件。
以图2为例:根据任务A、B、C、D、E、F六个任务在调度树中的深度可以得到,这六个任务的执行顺序从前到后为任务A、任务B和任务C、任务D,任务E,任务F。若任务A运行完成,剩余任务中,其中只有任务C和任务D到达了任务最早可执行时间。同时,由于任务D所依赖的任务B并未运行成功,所以即使任务D已经到达任务最早可执行时间,任务D也并未达到可执行条件。目前,就只有任务C达到可执行条件。
本实施例中,只有在当期任务达到了程序可以执行的最早时间,且所依赖的所有上级任务均运行成功,对应的当期任务才达到可执行条件。
311、基于所述当期任务的执行顺序和所述任务配置表中各当期任务的任务最早可开始时间,确定各当期任务是否已经达到程序可开始执行的最早时间;
本实施例中,根据当期任务的执行顺序和当期任务的任务最早可开始时间,判断所述当期任务是否已经达到了程序可开始执行的最早时间。比如,当前,虽然任务A可以开始执行了,但此时,任务时间并没有达到程序可以开始执行的最早时间,那么任务A也还是没法开始执行的。
312、若各当期任务是否已经达到程序可开始执行的最早时间,则判断各当期任务所依赖的其他任务是否都已经执行完成;
本实施例中,若当期任务的任务时间已经达到程序可开始执行的最早时间,则判断该任务所依赖的所有上级任务(子任务)是否完成。由任务之间存在依赖关系,该任务当且只有所依赖的所有上级任务执行成功之后,才能开始执行,所以,若想确定当期任务是否达到了可执行条件,必须先判断当期任务所依赖的子任务是否都已经执行完成。比如,任务B若想开始执行,必须要任务B的上级任务“任务D”、“任务M”、“任务K”均执行且执行成功的前提下,才能开始执行。
313、若各当期任务已经达到程序可开始执行的最早时间,且各当期任务所依赖的其他任务都已经执行完成,则确定各当期任务达到可执行条件;
本实施例中,若当期任务的任务时间已经达到程序可开始执行的最早时间且该任务所依赖的上级任务(子任务)均已经执行成功,则确定对应当期任务达到了可执行条件。
314、基于各当期任务的执行顺序,依次执行各当期任务并更新各当期任务的运行状态;
本实施例中,在当期任务达到可执行条件的情况下,则根据当期任务的执行顺序依次执行对应任务,并更新对应任务的运行状态。比如,任务R本身执行完成后会将状态更新为已完成。
315、基于各当期任务的运行状态,判断各当期任务的是否执行成功;
本实施例中,根据当期任务的运行状态,判断对应任务是否已经完成。比如,若任务R本身执行完成,任务R的运行状态会更新为已完成,若没有运行完成,则运行状态为运行中或者运行失败。
316、若各当期任务执行成功,则将各当期任务备份至预置任务备份表。
本实施例中,在(每一次)调度结束,(都)会对任务执行(job)表中的所有当期任务(的运行状态)进行判断,如果全部任务都是已完成状态,则将所有任务备份至log、也就是,将job中的任务信息,配置、依赖、层级,任务的开始时间、结束时间等备份到log表,供以后查询。每一次调度都会执行未完成的任务,直到所有任务运行完成为止。
由上可见,本发明任务调度管理方法,通过构建任务控制表,在当前存在当期任务的情况下,基于当期任务的依赖关系和执行方法是否发生改变,调整所有依赖于该当期任务的任务的运行状态,根据任务之间的依赖关系,利用递归算法计算调度树中所有任务的深度,以确定所有当期任务的执行顺序,当所有当期任务达到程序可以开始运行的最早时间且依赖于该当期任务的所有子任务均运行完毕,根据当期任务的执行顺序,依次执行所有当期任务,并更新对应的任务状态,将任务执行信息备份到log表中。本方案应用于区块链领域,本方案可以用于经业务指标分析平台在进行多任务调度时,解决无法将任务依赖与最大可执行时间的相结合的问题,自动重置修正异常参数,从而提高数据处理效率。
上面对本发明实施例中任务调度管理方法进行了描述,下面对本发明实施例中任务调度管理装置进行描述,请参阅图5,本发明实施例中任务调度管理装置的第一个实施例包括:
读取模块401,用于读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
第一判断模块402,用于根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
确定模块403,用于当在多个当期任务时,基于所述任务执行表中的配置信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
第二判断模块404,用于判断所述依赖关系和所述执行方法是否有修改,得到判断结果;
第一重置模块405,用于当所述判断结果为依赖关系和执行方法中至少有一个被修改,重置所述当期任务以及与所述当期任务存在依赖关系的子任务的运行状态;
第三判断模块406,用于基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件;
备份模块407,用于当各当期任务达到可执行条件,依次执行各当期任务,并将各当期任务备份至预置任务备份表中。
由上可见,本发明任务调度管理方法,通过构建任务控制表,在当前存在当期任务的情况下,基于当期任务的依赖关系和执行方法是否发生改变,调整所有依赖于该当期任务的任务的运行状态,根据任务之间的依赖关系,利用递归算法计算调度树中所有任务的深度,以确定所有当期任务的执行顺序,当所有当期任务达到程序可以开始运行的最早时间且依赖于该当期任务的所有子任务均运行完毕,根据当期任务的执行顺序,依次执行所有当期任务,并更新对应的任务状态,将任务执行信息备份到log表中。本方案应用于区块链领域,本方案可以用于经业务指标分析平台在进行多任务调度时,解决无法将任务依赖与最大可执行时间的相结合的问题,自动重置修正异常参数,从而提高数据处理效率。
请参阅图6,本发明实施例中任务调度管理装置的第二个实施例中,该装置包括:
读取模块501,用于读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
第一判断模块502,用于根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
确定模块503,用于当存在多个当期任务时,基于所述任务执行表中的配置信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
第二判断模块504,用于判断所述依赖关系和所述执行方法是否有修改,得到判断结果;
第一重置模块505,用于当所述判断结果为依赖关系和执行方法中至少有一个被修改,重置所述当期任务以及与所述当期任务存在依赖关系的子任务的运行状态;
第三判断模块506,用于基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件;
备份模块507,用于当各当期任务达到可执行条件,依次执行各当期任务,并将各当期任务备份至预置任务备份表中;
在本实施例中,所述任务调度管理装置还包括:
写入模块508,用于若不存在当期任务,则将所述任务配置表中任务的配置信息写入所述任务执行表。
获取模块509,用于在执行当期任务时,获取各历史期任务对应的任务日志表;
第四判断模块510,用于基于所述任务日志表,判断上期任务是否执行成功;
执行模块511,用于当所述上期任务执行成功,执行当期任务;
第二重置模块512,用于当所述上期任务执行失败,将上期任务重置为初始状态任务。
可选的,在本发明实施例中任务调度管理装置的第二个实施例中,所述第二判断模块504具体用于:
将所述任务配置表中的第一依赖关系与所述任务执行表中的第二依赖关系进行比对,以及将所述任务配置表中的第一执行方法与所述任务执行表中的第二执行方法进行比对,得到比对结果;
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果均一致,则确定则确定各当期任务之间的依赖关系和各当期任务对应的执行方法没有修改;
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果至少有一个不一致,则确定各当期任务之间的依赖关系和各当期任务对应的执行方法有修改。
可选的,所述第三判断模块506包括:
计算单元5061,用于基于所述任务配置表中所有任务之间的依赖关系,利用递归算法计算每一任务在所述任务调度树中的任务深度;
确定单元5062,用于根据所述任务深度,确定各当期任务的执行顺序;
获取单元5063,用于从所述任务配置表中获取各当期任务的任务最早可开始时间;
判断单元5064,用于基于所述执行顺序与所述任务最早可开始时间,判断各当期任务是否达到可执行条件,其中,所述可执行条件是任务达到最早可开始时间且所述任务依赖的上级任务运行成功。
可选的,所述判断单元5064具体用于:
基于所述当期任务的执行顺序和所述任务配置表中各当期任务的任务最早可开始时间,确定各当期任务是否已经达到程序可开始执行的最早时间;
若各当期任务是否已经达到程序可开始执行的最早时间,则判断各当期任务所依赖的其他任务是否都已经执行完成;
若各当期任务已经达到程序可开始执行的最早时间,且各当期任务所依赖的其他任务都已经执行完成,则确定各当期任务达到可执行条件。
可选的,所述备份模块509具体用于:
基于各当期任务的执行顺序,依次执行各当期任务并更新各当期任务的运行状态;
基于各当期任务的运行状态,判断各当期任务的是否执行成功;
若各当期任务执行成功,则将各当期任务备份至预置任务备份表。
由上可见,本发明任务调度管理方法,通过构建任务控制表,在当前存在当期任务的情况下,基于当期任务的依赖关系和执行方法是否发生改变,调整所有依赖于该当期任务的任务的运行状态,根据任务之间的依赖关系,利用递归算法计算调度树中所有任务的深度,以确定所有当期任务的执行顺序,当所有当期任务达到程序可以开始运行的最早时间且依赖于该当期任务的所有子任务均运行完毕,根据当期任务的执行顺序,依次执行所有当期任务,并更新对应的任务状态,将任务执行信息备份到log表中。本方案应用于区块链领域,本方案可以用于经业务指标分析平台在进行多任务调度时,解决无法将任务依赖与最大可执行时间的相结合的问题,自动重置修正异常参数,从而提高数据处理效率。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置或系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上面图5和图6从模块化功能实体的角度对本发明实施例中的任务调度管理装置进行详细描述,下面从硬件处理的角度对本发明实施例中任务调度管理设备进行详细描述。
图7是本发明实施例提供的一种任务调度管理设备的结构示意图,该任务调度管理设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,CPU)601(例如,一个或一个以上处理器)和存储器609,一个或一个以上存储应用程序607或数据606的存储介质608(例如一个或一个以上海量存储设备)。其中,存储器609和存储介质608可以是短暂存储或持久存储。存储在存储介质608的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对图计算的布尔型变量存储中的一系列指令操作。更进一步地,处理器601可以设置为与存储介质608通信,在任务调度管理设备600上执行存储介质608中的一系列指令操作。
任务调度管理设备600还可以包括一个或一个以上电源602,一个或一个以上有线或无线网络接口603,一个或一个以上输入输出接口604,和/或,一个或一个以上操作系统605,例如WindowsServe,MacOSX,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6中示出的任务调度管理设备结构并不构成对任务调度管理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(randomaccessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种任务调度管理方法,其特征在于,应用于任务调度管理装置,所述任务调度管理方法包括:
读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
若存在多个当期任务,则基于所述任务执行表中的配置信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
判断所述依赖关系和所述执行方法是否有修改,得到判断结果;
若所述判断结果为依赖关系和执行方法中至少有一个被修改,则重置所述当期任务以及与所述当期任务存在依赖关系的子任务的运行状态;
基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件;
若各当期任务达到可执行条件,则依次执行各当期任务,并将各当期任务备份至预置任务备份表中。
2.根据权利要求1所述的任务调度管理方法,其特征在于,所述根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务之前,还包括:
获取各历史期任务对应的任务日志表;
基于所述任务日志表,判断上期任务是否执行成功;
若所述上期任务执行成功,则执行判断所述任务调度树中是否存在多个当期任务的步骤;
若所述上期任务执行失败,则将所述上期任务重置为初始状态。
3.根据权利要求1所述的任务调度管理方法,其特征在于,所述任务调度管理方法还包括:
若所述任务调度树中不存在当期任务,则将所述任务配置表中任务的配置信息写入所述任务执行表。
4.根据权利要求1所述的任务调度管理方法,其特征在于,所述任务配置表中的配置信息包括各当期任务之间的第一依赖关系和各当期任务对应的第一执行方法,所述任务执行表中的配置信息包括各当期任务之间的第二依赖关系和各当期任务对应的第二执行方法;
所述判断所述依赖关系和所述执行方法是否有修改,得到判断结果包括:
将所述任务配置表中的第一依赖关系与所述任务执行表中的第二依赖关系进行比对,以及将所述任务配置表中的第一执行方法与所述任务执行表中的第二执行方法进行比对,得到比对结果;
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果均一致,则确定则确定各当期任务之间的依赖关系和各当期任务对应的执行方法没有修改;
若所述第一依赖关系和所述第二依赖关系的比对结果与所述第一执行方法和所述第二执行方法的比对结果至少有一个不一致,则确定各当期任务之间的依赖关系和各当期任务对应的执行方法有修改。
5.根据权利要求1所述的任务调度管理方法,其特征在于,所述基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件包括:
基于所述任务配置表中所有任务之间的依赖关系,利用递归算法计算每一任务在所述任务调度树中的任务深度;
根据所述任务深度,确定各当期任务的执行顺序;
从所述任务配置表中获取各当期任务的任务最早可开始时间;
基于所述执行顺序与所述任务最早可开始时间,判断各当期任务是否达到可执行条件,其中,所述可执行条件是任务达到最早可开始时间且所述任务依赖的上级任务运行成功。
6.根据权利要求5所述的任务调度管理方法,其特征在于,所述基于所述执行顺序与所述任务最早可开始时间,判断各当期任务是否达到可执行条件包括:
基于所述当期任务的执行顺序和所述任务配置表中各当期任务的任务最早可开始时间,确定各当期任务是否已经达到程序可开始执行的最早时间;
若各当期任务是否已经达到程序可开始执行的最早时间,则判断各当期任务所依赖的其他任务是否都已经执行完成;
若各当期任务已经达到程序可开始执行的最早时间,且各当期任务所依赖的其他任务都已经执行完成,则确定各当期任务达到可执行条件。
7.根据权利要求1所述的任务调度管理方法,其特征在于,所述若各当期任务达到可执行条件,则依次执行各当期任务,并将各当期任务备份至预置任务备份表中包括:
基于各当期任务的执行顺序,依次执行各当期任务并更新各当期任务的运行状态;
基于各当期任务的运行状态,判断各当期任务的是否执行成功;
若各当期任务执行成功,则将各当期任务备份至预置任务备份表。
8.一种任务调度管理装置,其特征在于,所述任务调度管理装置包括:
读取模块,用于读取任务调度树以及所述任务调度树对应的任务配置表和任务执行表;
第一判断模块,用于根据所述任务配置表中任务的配置信息和所述任务执行表中任务的配置信息,判断所述任务调度树中是否存在多个当期任务;
确定模块,用于当在多个当期任务时,基于所述任务执行表中的配置信息,确定各当期任务之间的依赖关系和各当期任务对应的执行方法;
第二判断模块,用于判断所述依赖关系和所述执行方法是否有修改,得到判断结果;
第一重置模块,用于当所述判断结果为依赖关系和执行方法中至少有一个被修改,重置所述当期任务以及与所述当期任务存在依赖关系的子任务的运行状态;
第三判断模块,用于基于所述任务配置表中所有任务之间的依赖关系与所述任务配置表中各当期任务的任务最早可开始时间,判断各当期任务是否达到可执行条件;
备份模块,用于当各当期任务达到可执行条件,依次执行各当期任务,并将各当期任务备份至预置任务备份表中。
9.一种任务调度管理设备,其特征在于,所述任务调度管理设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述任务调度管理设备执行如权利要求1-7中任一项所述的任务调度管理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的任务调度管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010582623.XA CN111708628A (zh) | 2020-06-23 | 2020-06-23 | 任务调度管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010582623.XA CN111708628A (zh) | 2020-06-23 | 2020-06-23 | 任务调度管理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111708628A true CN111708628A (zh) | 2020-09-25 |
Family
ID=72542209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010582623.XA Pending CN111708628A (zh) | 2020-06-23 | 2020-06-23 | 任务调度管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708628A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098960A (zh) * | 2021-03-31 | 2021-07-09 | 北京三快在线科技有限公司 | 服务运行方法、装置、服务器及存储介质 |
CN113238838A (zh) * | 2021-04-22 | 2021-08-10 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN113360282A (zh) * | 2021-06-03 | 2021-09-07 | 中国工商银行股份有限公司 | 一种任务管理方法、装置、电子设备及存储介质 |
CN113485809A (zh) * | 2021-07-14 | 2021-10-08 | 上海通联金融服务有限公司 | 一种解决业务过程耗时高的方法 |
CN113641514A (zh) * | 2021-07-23 | 2021-11-12 | 浙江吉利控股集团有限公司 | 一种可控的实时任务远程执行系统 |
CN114691232A (zh) * | 2020-12-14 | 2022-07-01 | 迈络思科技有限公司 | 将多任务参数相关操作的执行卸载到网络装置 |
CN116069448A (zh) * | 2023-02-15 | 2023-05-05 | 钛信(上海)信息科技有限公司 | 一种用于云迁移的子业务资源调度方法及系统 |
CN116149829A (zh) * | 2023-04-20 | 2023-05-23 | 中邮消费金融有限公司 | 任务管理方法、装置、设备及存储介质 |
CN116882716A (zh) * | 2023-09-08 | 2023-10-13 | 长城证券股份有限公司 | 任务调度方法、设备及存储介质 |
-
2020
- 2020-06-23 CN CN202010582623.XA patent/CN111708628A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691232A (zh) * | 2020-12-14 | 2022-07-01 | 迈络思科技有限公司 | 将多任务参数相关操作的执行卸载到网络装置 |
CN113098960A (zh) * | 2021-03-31 | 2021-07-09 | 北京三快在线科技有限公司 | 服务运行方法、装置、服务器及存储介质 |
CN113238838A (zh) * | 2021-04-22 | 2021-08-10 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN113238838B (zh) * | 2021-04-22 | 2023-01-24 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN113360282A (zh) * | 2021-06-03 | 2021-09-07 | 中国工商银行股份有限公司 | 一种任务管理方法、装置、电子设备及存储介质 |
CN113360282B (zh) * | 2021-06-03 | 2024-04-12 | 中国工商银行股份有限公司 | 一种任务管理方法、装置、电子设备及存储介质 |
CN113485809B (zh) * | 2021-07-14 | 2022-10-18 | 上海通联金融服务有限公司 | 一种解决业务过程耗时高的方法 |
CN113485809A (zh) * | 2021-07-14 | 2021-10-08 | 上海通联金融服务有限公司 | 一种解决业务过程耗时高的方法 |
CN113641514A (zh) * | 2021-07-23 | 2021-11-12 | 浙江吉利控股集团有限公司 | 一种可控的实时任务远程执行系统 |
CN116069448A (zh) * | 2023-02-15 | 2023-05-05 | 钛信(上海)信息科技有限公司 | 一种用于云迁移的子业务资源调度方法及系统 |
CN116149829A (zh) * | 2023-04-20 | 2023-05-23 | 中邮消费金融有限公司 | 任务管理方法、装置、设备及存储介质 |
CN116882716A (zh) * | 2023-09-08 | 2023-10-13 | 长城证券股份有限公司 | 任务调度方法、设备及存储介质 |
CN116882716B (zh) * | 2023-09-08 | 2024-03-08 | 长城证券股份有限公司 | 任务调度方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708628A (zh) | 任务调度管理方法、装置、设备及存储介质 | |
US9495200B2 (en) | System for partitioning batch processes | |
US8924974B1 (en) | System for error checking of process definitions for batch processes | |
US7519614B2 (en) | Data verification systems and methods using business objects | |
US11582117B2 (en) | State transitions for a set of services | |
US9213707B2 (en) | Ordered access of interrelated data files | |
US8315988B2 (en) | Systems and methods for verifying a data communication process | |
US20150101056A1 (en) | Risk Assessment of Changing Computer System Within a Landscape | |
US20080077549A1 (en) | Data verification systems and methods based on messaging data | |
CN108491254A (zh) | 一种数据仓库的调度方法及装置 | |
JPH0683841A (ja) | 作業フロー管理システムと方法 | |
CN111932257B (zh) | 一种区块链并行化处理方法及装置 | |
CN113760476B (zh) | 任务依赖处理方法及相关装置 | |
CN110537170B (zh) | 分析大规模数据处理作业的方法、系统以及计算机可读存储设备 | |
US9092278B2 (en) | Determining the processing order of a plurality of events | |
US10061533B1 (en) | Data protection tiering | |
EP3680775B1 (en) | Managing metadata for a distributed processing system | |
CN108573348B (zh) | 金融指标分布式计算方法及其系统 | |
CN113052707A (zh) | 一种应用投产方法、装置、计算机设备和存储介质 | |
CN110019144A (zh) | 一种大数据平台数据运维的方法和系统 | |
CN112612605B (zh) | 线程分配方法、装置、计算机设备和可读存储介质 | |
Suryavanshi et al. | Modeling of multiversion concurrency control system using Event-B | |
CN111708767A (zh) | 数据核对方法、装置、存储介质及计算机设备 | |
CN115756765A (zh) | 分布式事务处理方法及装置 | |
EP3955127A1 (en) | Automatic database schema updater |
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 |