CN114661432A - 任务调度方法、装置、设备及存储介质 - Google Patents
任务调度方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114661432A CN114661432A CN202011548515.7A CN202011548515A CN114661432A CN 114661432 A CN114661432 A CN 114661432A CN 202011548515 A CN202011548515 A CN 202011548515A CN 114661432 A CN114661432 A CN 114661432A
- Authority
- CN
- China
- Prior art keywords
- task
- target
- normal
- scheduling
- abnormal
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种任务调度方法、装置、设备及存储介质,在本发明中,任务调度***的调度节点将待处理的工作流中的至少一个任务存储到正常任务集合;按照正常任务集合中任务对应的调度优先级,从正常任务集合中取出待调度的目标任务;依据目标任务配置的任务执行节点的信息,执行目标任务的分发处理;如目标任务分发失败,将目标任务加入到异常任务集合,并返回执行从正常任务集合中取出待调度的目标任务的操作,直至正常任务集合中不存在未被分发的任务。本发明可以减少由于任务执行节点异常而导致任务调度阻塞的情况。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务调度方法、装置、设备及存储介质。
背景技术
工作流是对工作流程及工作流程中各操作步骤之间业务规则的抽象以及概括描述。工作流一般包括一个或者多个任务(task),每个任务代表需要执行的某项工作。通过任务调度***可以对工作流中的任务进行任务调度,以将工作流中的任务分发给任务执行节点中的任务执行程序运行。
在任务调度过程中,如果某个任务指定的任务执行节点上的任务执行程序存在异常,而会导致该任务分发失败。然而,任务调度***需要按照工作流中各任务的先后顺序依次调度各个任务,因此,如果某个任务分发失败,则会导致工作流中该任务之后的其他任务的调度被阻塞,从而影响到工作流的处理效率。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种任务调度方法、装置、设备及存储介质。
一方面,本申请提供了一种任务调度方法,应用于任务调度***的调度节点,所述任务调度***包括所述调度节点以及多个任务执行节点,所述方法包括:
将待处理的工作流中的至少一个任务存储到正常任务集合,所述至少一个任务分别具有各自的调度优先级,且每个任务均配置有用于执行所述任务的任务执行节点的信息;
按照所述正常任务集合中任务对应的调度优先级,从所述正常任务集合中取出待调度的目标任务;
依据所述目标任务配置的任务执行节点的信息,执行所述目标任务的分发处理;
如所述目标任务分发失败,将所述目标任务加入到异常任务集合,并返回执行所述从所述正常任务集合中取出待调度的目标任务的操作,直至所述正常任务集合中不存在未被分发的任务。
优选的,在所述将所述目标任务加入到异常任务集合之后,还包括:
为所述目标任务设置延迟重试时长;
在所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务从所述异常任务集合转移到所述正常任务集合。
优选的,在将所述目标任务加入到异常任务集合之后,还包括:
更新所述目标任务进入所述异常任务集合的进入次数;
所述为所述目标任务设置延迟重试时长,包括:
根据更新后的所述进入次数,为所述目标任务设置延迟重试时长,其中,进入次数越多,所述延迟重试时长越长。
优选的,如所述目标任务分发失败,将所述目标任务加入到异常任务集合,包括:
如所述目标任务分发失败,更新所述目标任务的分发失败次数;
如所述分发失败次数未达到设定次数,返回执行所述依据所述目标任务配置的任务执行节点的信息,执行所述目标任务的分发处理的操作;
如所述分发失败次数达到所述设定次数,将所述目标任务加入到异常任务集合。
优选的,所述将待处理的工作流中的至少一个任务存储到正常任务集合,包括:
确定待处理的工作流中待调度处理的至少一个任务;
按照所述至少一个任务各自的调度优先级,将所述至少一个任务加入到正常任务队列,其中,调度优先级越高的任务在所述正常任务队列中的排序越靠前;
所述按照所述正常任务集合中任务对应的调度优先级,从所述正常任务集合中取出待调度的目标任务,包括:
按照所述正常任务队列中各任务的先后顺序,从所述正常任务队列中取出待调度的目标任务。
优选的,所述为所述目标任务设置延迟重试时长,包括:
通过异常监控线程为所述目标任务设置延迟重试时长;
所述在所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务加入到所述正常任务集合,包括:
通过所述异常监控线程监控所述异常任务集合中各任务当前加入所述异常任务集合的时长;
在所述异常监控线程确认所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务从所述异常任务集合转移到所述正常任务集合。
又一方面,本申请还提供了一种任务调度装置,应用于任务调度***的调度节点,所述任务调度***包括所述调度节点以及多个任务执行节点,所述装置包括:
任务存储单元,用于将待处理的工作流中的至少一个任务存储到正常任务集合,所述至少一个任务分别具有各自的调度优先级,且每个任务均配置有用于执行所述任务的任务执行节点的信息;
任务调度单元,用于按照所述正常任务集合中任务对应的调度优先级,从所述正常任务集合中取出待调度的目标任务;
任务分发单元,用于依据所述目标任务配置的任务执行节点的信息,执行所述目标任务的分发处理;
异常处理单元,用于如所述目标任务分发失败,将所述目标任务加入到异常任务集合,并返回执行所述从所述正常任务集合中取出待调度的目标任务的操作,直至所述正常任务集合中不存在未被分发的任务。
优选的,还包括:
延迟设置单元,用于在所述异常处理单元将所述目标任务加入到异常任务集合之后,为所述目标任务设置延迟重试时长;
任务重试单元,用于在所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务从所述异常任务集合转移到所述正常任务集合。
又一方面,本申请还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行如上任意一项所述的任务调度方法。
又一方面,本申请还提供了一种电子设备,包括至少一个处理器、与处理器连接的至少一个存储器以及总线;
其中,所述处理器、所述存储器通过总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行如上任一项所述的任务调度方法。
借由上述技术方案,本申请将工作流中各任务加入到正常任务集合,在依次调度正常任务集合中的各任务的过程中,如果某个任务分发失败,则会将该任务加入到该正常任务集合之外的异常任务集合,使得调度节点可以继续从该正常任务集合中取出其他任务继续进行调度,从而减少了任务分发失败而影响到后续任务的调度的情况,进而有利于提高工作流中任务的调度效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请一种任务调度***一个实施例的组成架构示意图;
图2示出了本申请一种任务调度方法一个实施例的流程示意图;
图3示出了本申请一种任务调度方法又一个实施例的流程示意图;
图4示出了本申请一种任务调度方法又一个实施例的流程示意图;
图5示出了本申请一种任务调度装置一个实施例的组成结构示意图;
图6示出了本申请一种电子设备的组成结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了便于理解,下面先对本申请所适用的任务调度***进行介绍。
如图1所示,其示出了本申请一种任务调度***一个实施例的组成架构示意图。
由图1可以看出,该任务调度***可以包括调度节点101以及多个任务执行节点102。
其中,调度节点和任务执行节点之间可以通过网络连接。
该调度节点可以获得待调度的工作流,该工作流中可以包括一个或者多个待执行的任务(task)。其中,每个任务代表需要执行的某项工作,如,任务可以为完成某项工作所需执行的程序。
该调度节点可以将工作流中的任务分发给不同的任务执行节点,以通过任务执行节点来执行任务的运行。
其中,任务执行节点上可以运行有任务执行程序(如,worker),通过任务执行程序可以处理调度节点分发到该任务执行节点上的任务。
当然,图1仅仅是以任务调度***的一种组成结构为例说明,在实际应用中,该任务调度***还可能会其他形式,如还可能会包括其他设备节点等,本申请对于任务调度***的具体架构形式不加限制。
下面结合流程图对本申请的任务调度方法进行介绍。
如图2,其示出了本申请一种任务调度方法一个实施例的流程示意图,本实施例的方法应用于任务调度***的调度节点,该任务调度***包括调度节点以及多个任务执行节点。本实施例的方法包括:
S201,将待处理的工作流中的至少一个任务存储到正常任务集合。
其中,至少一个任务分别具有各自的调度优先级,且每个任务均配置有用于执行任务的任务执行节点的信息。
其中,工作流中包括一个或者多个待执行的任务,一般情况下,该工作流都包括多个待执行的任务。
该调度节点可以拆分出工作流中包括的各任务,并得到各个任务所具有的调度优先级。
如,工作流可以采用有向无环图的形式表示,通过分析该有向无环图中的各个分支,可以得到工作流中所涉及到的各个任务以及各个任务所对应的调度优先级。
其中,任务的调度优先级为该任务被调度及执行的优先级,调度优先级高的任务需要被优先调度并执行。
不同任务对于硬件以及软件运营环境的需求也可能会存在不同,因此,在本申请中,工作流中每个任务均配置有该任务对应的任务执行节点的信息,在此基础上,需要将任务调度到该任务配置的任务执行节点上处理。
其中,任务配置的任务执行节点的信息可以为任务执行节点的地址或者编码等能唯一标识该任务执行节点的信息。
其中,该正常任务集合可以为一个队列,也可以是其他形式,本申请对此不加限制。
可以理解的是,工作流存在多个任务的情况下,工作流中不同任务之间可能会有依赖关系,如,某个任务需要在另一个任务完成之后,基于另一个任务的执行结果来执行等。在该种情况下,调度节点可以按照工作流中各个任务之前的依赖关系,将基于依赖关系需要优先被执行的至少一个任务存储到该正常任务集合。而工作流中尚未被存储到正常任务集合的其他任意一个任务,需要待该任务所依赖的任务被分发且成功执行后再加入到正常任务执行集合。
如,工作流中存在任务1、任务2、任务3、任务4、任务5和任务6,其中,任务2需要依赖任务1,而任务5需要依赖任务3和任务4,而任务6不需要依赖其他任务,在此基础上,可以将任务1、任务3、任务4和任务6存储到正常任务集合。相应的,在任务1完成调度并被成功执行后,才会将任务2加入到该正常任务集合;任务5需要在任务3和任务4被成功执行后再加入到该正常任务集合。
S202,按照该正常任务集合中任务对应的调度优先级,从该正常任务集合中取出待调度的目标任务。
在本申请中,可以在构建的正常任务集合中存储尚未被调度分发出去的目标任务,同时,每从正常任务集合中取出一个任务之后,正常任务集合中就会少一个任务
可以理解的是,从正常任务集合中取出的目标任务为该正常任务集合中剩余的任务中调度优先级最高的任务。
S203,依据目标任务配置的任务执行节点的信息,执行目标任务的分发处理。
可以理解的是,依据该目标任务配置的任务执行节点的信息,调度节点可以确定出该目标任务所需分发到的任务执行节点,并执行向该任务执行节点分配该任务的操作。
如,依据该目标任务配置的任务执行节点的信息,可以先查询是否存在该任务执行节点,以及该任务执行节点是否存在异常(如与通信节点之间的网络异常,或者,任务执行节点中的任务执行程序故障等),在存在任务执行节点以及任务执行节点的运行状态正常的情况下,可以向该任务执行节点分发该目标任务。
S204,如目标任务分发失败,将目标任务加入到异常任务集合,并返回S202的操作,直至正常任务集合中不存在未被分发的任务。
其中,目标任务分发失败是指由于目标任务配置的任务执行节点异常而导致无法向目标任务配置的任务执行节点分发该目标任务。
其中,任务执行节点异常所导致的分发失败可以分为多种情况。
如,该任务执行节点的异常可以分为两类,一类是任务执行节点的故障,如网络故障、任务执行节点的设备故障或者任务执行程序异常等。
一类为目标任务配置的任务执行节点不存在,如,为目标任务错误配置了调度***中不存在的任务执行节点;或者是,为目标任务配置的任务执行节点为两个节点组内的节点,而这两个节点组内不存在相交的节点,而出现任务配置的任务执行节点不存在的情况。
在本申请中,为了在由于任务执行节点异常导致目标任务分发失败的情况下,会将该目标任务加入到该正常任务集合之外的另一个任务集合,即异常任务集合,从而实现了将分发失败的任务从正常任务集合转移到异常任务集合。在此基础上,调度节点可以接续对该正常任务集合中调度优先级位于该目标任务之后的任务进行调度分发,以减少由于目标任务分发失败而阻塞正常任务集合中该目标任务之后其他任务的调度。
可以理解的是,如果该目标任务分发成功,那么调度节点同样会返回执行步骤S202,以继续调度该正常任务集合中剩余的其他任务。
其中,该异常任务集合可以为一个队列或者文件等等,对此不加限制。
本申请将工作流中各任务加入到正常任务集合,在依次调度正常任务集合中的各任务的过程中,如果某个任务分发失败,则会将该任务加入到该正常任务集合之外的异常任务集合,使得调度节点可以继续从该正常任务集合中取出其他任务继续进行调度,从而减少了任务分发失败而影响到后续任务的调度的情况,进而有利于提高工作流中任务的调度效率。
可以理解的是,在将分发失败的任务加入到异常任务集合之后,如该任务配置任务执行节点恢复正常,则可以正常分发该任务。基于此,任务配置的任务执行节点恢复正常后,也可能使得异常任务集合中的任务被重新分发,在任务加入到异常任务集合之后,间隔一段时间,再将该任务从异常任务集合重新加入到正常任务集合。
如,在将目标任务加入到异常任务集合之后,还包括:为目标任务设置延迟重试时长。在此基础上,如果目标任务加入异常任务集合的时长达到该目标任务的延迟重试时长后,将该目标任务加入到所述正常任务集合。
其中,该延迟重试时长可以为设定时长,如,设定时长可以为5分钟。
该延迟重试时长可以与任务有关,如,任务加入该异常任务集合的次数越多,则为任务设置的延迟重试时长越长。
下面结合图3进行说明。如图3,其示出了本申请一种任务调度方法又一个实施例的流程示意图,本实施例的方法同样应用于前面提到的调度节点,本实施例的方法可以包括:
S301,将待处理的工作流中的至少一个任务存储到正常任务集合。
其中,至少一个任务分别具有各自的调度优先级,且每个任务均配置有用于执行任务的任务执行节点的信息。
S302,按照该正常任务集合中任务对应的调度优先级,从该正常任务集合中取出待调度的目标任务。
S303,依据目标任务配置的任务执行节点的信息,执行目标任务的分发处理。
S304,如目标任务分发失败,将目标任务加入到异常任务集合,并返回S202的操作,直至正常任务集合中不存在未被分发的任务。
以上步骤可以参见前面实施例的相关介绍,在此不再赘述。
作为一种可选方式,为了减少任务分发失败的误判情况,本申请在确定出目标任务分发失败之后,还可以更新该目标任务的分发失败次数。如,在已记录的该目标任务的分发失败次数上加一,例如,假设该目标任务为首次出现分发失败,则分发失败次数为一;如果该目标任务的分发失败次数为1,那么在当前确定出目标任务分发失败后,将该目标任务的分发失败次数更新为2。
相应的,如果该目标任务的分发失败次数未达到设定次数,则返回执行S303,以重试对该目标任务的分发。
如果该目标任务的分发失败次数达到该设定次数,则可以说明该目标任务配置的任务执行节点确实存在故障,在该种情况下,可以将该目标任务加入到异常任务集合。
S305,更新该目标任务进入该异常任务集合的进入次数。
其中,该进入次数为目标任务已加入到该异常任务集合的总次数。
如,在将目标任务加入该异常任务集合时,例如,可以在目标任务进入异常任务集合之前或之后,将该目标任务的进入次数从原有数值基础上加一。例如,假设目标任务为首次被加入到异常任务集合,那么更新后的进入次数为1;假设目标任务在之前已经被加入过一次异常任务集合,在目标任务从异常任务集合转移到正常任务集合之后,该目标任务被再次调度分发后又出现分发失败的情况,从而再次被加入到该异常任务集合,则更新后的进入次数为2次。
S306,根据该更新后的进入次数,为该目标任务设置延迟重试时长。
其中,任务的进入次数越多,延迟重试时长越长。也就是说,一个任务进入异常任务集合的次数越多,本次进入异常任务集合后该任务在异常任务集合中停留的时间就越长。
如,可以预先设置不同进入次数与延迟重试时长的对应关系。例如,进入次数为1,则延迟重试时长为5分钟;在基础上,进入次数每增加1次,该延迟重试时长加2分钟,即进入次数为2次,延迟重试时长为7分钟;进入次数为3次,延迟重试时长为9分钟,依此类推。
当然,根据任务的进入次数,还可以有其他设置该任务的延迟重试时长的方式,对此不加限制。
S307,如果目标任务本次加入异常任务集合的时长达到该目标任务的延迟重试时长后,将该目标任务从异常任务集合转移到该正常任务集合。
其中,将该目标任务从异常任务集合转移到该正常任务集合的目的是可以重新对该目标任务进行调度分发,以便在目标任务配置的任务执行节点的异常修复后,可以将目标任务分发给任务执行节点执行,以保证目标任务的可靠执行。
可以理解的是,目标任务的进入次数越多,则说明该目标任务配置的任务执行节点的异常尚未被修复且修复所需的时间较长,因此,通过延长该目标任务的延迟重试时长,可以避免频繁将该目标任务转移到正常任务集合,从而可以有利于减少由于频繁重试该目标任务的调度分发而导致数据资源耗费。
为了保证正常任务集合中各任务的可靠调度的同时,可以对异常任务集合中各个任务进行监控,本申请可以单独启动一个线程对异常任务集合进行监控的异常监控线程。如,可以通过任务调度线程执行将任务加入到正常任务集合以及从正常任务集合中取出任务进行调度,而通过异常监控线程来异常任务集合。
作为一种可选方式,为了便于按照任务的调度优先级对任务进行调度,本申请中,该正常任务集合可以为一个队列,为了便于区分,称为正常任务队列。类似的,该异常任务集合可以为一个异常任务队列。
下面结合一个实施例进行说明,如图4所示,其示出了本申请一种任务调度方法又一个实施例的流程示意图,本实施例的方法可以包括:
S401,确定待处理的工作流中待调度处理的至少一个任务。
每个任务均配置有用于执行该任务的任务执行节点的信息,且每个任务均具有调度优先级。
如,可以解析工作流,确定工作流中所包含的各任务以及任务之间的依赖关系,并得到各个任务对应的调度优先级,在此基础上,可以按照各任务之间的依赖关系,确定出当前待调度的任务并执行步骤S402。
可以理解的是,随着正常任务队列中任务被调度和执行,该工作流中其他未被加入到后续提到的正常任务队列中的任务仍需要被不断加入到该任务正常队列,因此,确定待调度处理的任务可能需要被多次执行。对于该步骤的具体过程本申请不加限制。
S402,按照至少一个任务各自的调度优先级,将至少一个任务加入到正常任务队列。
其中,调度优先级越高的任务在正常任务队列中的排序越靠前。
S403,按照正常任务队列中各任务的先后顺序,从正常任务队列中取出待调度的目标任务。
S404,依据目标任务配置的任务执行节点的信息,执行目标任务的分发处理。
S405,检测该目标任务是否分发失败,如果是,则执行步骤S406;如果否,则执行步骤S408;
S406,更新该目标任务的分发失败次数,并检测该目标任务的分发失败次数是否达到设定次数,如果是,则执行步骤S407;如果否,则返回步骤S404;
可以理解的是,更新了目标任务的分发失败次数之后,检测目标任务的分发失败次数是否到达设定次数是指检测更新后的分发失败次数是否达到该设定次数。
S407,将目标任务加入到异常任务队列。
S408,检测该正常任务队列中是否仍尚未完成调度的任务,如果是,则返回执行步骤S403;如果否,则结束任务调度。
S409,通过异常监控线程更新该目标任务进入该异常任务队列的进入次数。
S410,通过异常监控线程根据该进入次数,为该目标任务设置延迟重试时长。
可以理解的是,S409和S410仅仅是异常监控线程为目标任务设置为延迟重试时长的一种方式,在实际应用中,如果目标任务每次进入到异常任务集合(如异常任务队列)所设定的延迟重试时长均为固定时长,该异常监控线程也可以直接为目标任务设置延迟重试时长,而无需考虑进入次数。
S411,通过该异常监控线程监控该异常任务队列中各任务当前加入异常任务集合的时长。
S412,在该异常监控线程确认目标任务本次加入异常任务队列的时长达到该目标任务的延迟重试时长后,将该目标任务从异常任务队列转移到正常任务队列。
其中,异常监控线程执行的步骤S409到S412为在步骤S407之后执行,但是该步骤可以与步骤S408同步执行。
需要说明的是,本实施例是以异常任务集合为异常任务队列的形式为例说明,但是可以理解的是,如果异常任务队列为其他形式的异常任务集合也同样适用于本实施例。类似的,正常任务队列替换为其他形式的正常任务集合也同样适用于本实施例。
对应本申请一种任务调度方法,本申请还提供了一种任务调度装置。如图5所示,其示出了本申请一种任务调度装置一个实施例的组成结构示意图,本实施例的装置可以应用于任务调度***的调度节点,该任务调度***包括该调度节点以及多个任务执行节点,该装置包括:
任务存储单元501,用于将待处理的工作流中的至少一个任务存储到正常任务集合,该至少一个任务分别具有各自的调度优先级,且每个任务均配置有用于执行该任务的任务执行节点的信息;
任务调度单元502,用于按照该正常任务集合中任务对应的调度优先级,从该正常任务集合中取出待调度的目标任务;
任务分发单元503,用于依据该目标任务配置的任务执行节点的信息,执行该目标任务的分发处理;
异常处理单元504,用于如该目标任务分发失败,将该目标任务加入到异常任务集合,并返回执行该从该正常任务集合中取出待调度的目标任务的操作,直至该正常任务集合中不存在未被分发的任务。
在一种可能的实现方式中,该装置还可以包括:
延迟设置单元,用于在该异常处理单元将该目标任务加入到异常任务集合之后,为该目标任务设置延迟重试时长;
任务重试单元,用于在该目标任务本次加入该异常任务集合的时长达到该目标任务的延迟重试时长后,将该目标任务从该异常任务集合转移到该正常任务集合。
在一种可选方式中,该装置还可以包括:
次数更新单元,用于在该异常处理单元将目标任务加入到异常任务集合之后,更新该目标任务进入该异常任务集合的进入次数;
该延迟设定单元,具体为,用于根据更新后的进入次数,为该目标任务设置延迟重试时长,其中,进入次数越多,该延迟重试时长越长。
在又一种可选方式中,该延迟设定单元,包括:
延迟设定子单元,用于通过异常监控线程为该目标任务设置延迟重试时长;
任务重试单元,包括:
时长监测单元,用于通过该异常监控线程监控该异常任务集合中各任务当前加入该异常任务集合的时长;
任务转移单元,用于在该异常监控线程确认该目标任务本次加入该异常任务集合的时长达到该目标任务的延迟重试时长后,将该目标任务从该异常任务集合转移到该正常任务集合。
在又一种可能的实现方式中,异常处理单元,包括:
次数更新单元,用于如该目标任务分发失败,更新该目标任务的分发失败次数;
第一异常处理单元,用于如该分发失败次数未达到设定次数,返回执行该依据该目标任务配置的任务执行节点的信息,执行该目标任务的分发处理的操作,直至该正常任务集合中不存在未被分发的任务;
第二异常处理单元,用于如该分发失败次数达到该设定次数,将该目标任务加入到异常任务集合,并返回执行该从该正常任务集合中取出待调度的目标任务的操作,直至该正常任务集合中不存在未被分发的任务。
在又一种可能的实现方式中,该任务存储单元包括:
任务确定单元,用于确定待处理的工作流中待调度处理的至少一个任务;
队列***单元,用于按照该至少一个任务各自的调度优先级,将该至少一个任务加入到正常任务队列,其中,调度优先级越高的任务在该正常任务队列中的排序越靠前;
任务调度单元,具体为,用于按照该正常任务队列中各任务的先后顺序,从该正常任务队列中取出待调度的目标任务。
所述任务调度装置包括处理器和存储器,上述任务存储单元、任务调度单元、任务分发单元和异常处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现在任务调度过程中,减少由于任务执行节点异常而导致阻塞任务调度的情况。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述任务调度方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述任务调度方法。
本发明实施例提供了一种电子设备,电子设备600包括至少一个处理器601、以及与处理器601连接的至少一个存储器602、总线603;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的任务调度方法。本文中的电子设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有如下方法步骤的程序:
将待处理的工作流中的至少一个任务存储到正常任务集合,所述至少一个任务分别具有各自的调度优先级,且每个任务均配置有用于执行所述任务的任务执行节点的信息;
按照所述正常任务集合中任务对应的调度优先级,从所述正常任务集合中取出待调度的目标任务;
依据所述目标任务配置的任务执行节点的信息,执行所述目标任务的分发处理;
如所述目标任务分发失败,将所述目标任务加入到异常任务集合,并返回执行所述从所述正常任务集合中取出待调度的目标任务的操作,直至所述正常任务集合中不存在未被分发的任务。
在一种可能的情况中,在所述将所述目标任务加入到异常任务集合之后,还包括:
为所述目标任务设置延迟重试时长;
在所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务从所述异常任务集合转移到所述正常任务集合。
在又一种可能的情况中,在将所述目标任务加入到异常任务集合之后,还包括:
更新所述目标任务进入所述异常任务集合的进入次数;
所述为所述目标任务设置延迟重试时长,包括:
根据更新后的所述进入次数,为所述目标任务设置延迟重试时长,其中,进入次数越多,所述延迟重试时长越长。
在又一种可能的情况中,如所述目标任务分发失败,将所述目标任务加入到异常任务集合,包括:
如所述目标任务分发失败,更新所述目标任务的分发失败次数;
如所述分发失败次数未达到设定次数,返回执行所述依据所述目标任务配置的任务执行节点的信息,执行所述目标任务的分发处理的操作;
如所述分发失败次数达到所述设定次数,将所述目标任务加入到异常任务集合。
在又一种可能的情况中,所述将待处理的工作流中的至少一个任务存储到正常任务集合,包括:
确定待处理的工作流中待调度处理的至少一个任务;
按照所述至少一个任务各自的调度优先级,将所述至少一个任务加入到正常任务队列,其中,调度优先级越高的任务在所述正常任务队列中的排序越靠前;
所述按照所述正常任务集合中任务对应的调度优先级,从所述正常任务集合中取出待调度的目标任务,包括:
按照所述正常任务队列中各任务的先后顺序,从所述正常任务队列中取出待调度的目标任务。
在又一种可能的情况中,所述为所述目标任务设置延迟重试时长,包括:
通过异常监控线程为所述目标任务设置延迟重试时长;
所述在所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务加入到所述正常任务集合,包括:
通过所述异常监控线程监控所述异常任务集合中各任务当前加入所述异常任务集合的时长;
在所述异常监控线程确认所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务从所述异常任务集合转移到所述正常任务集合。
本申请是参照根据本申请实施例的方法、装置、电子设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、存储器和总线。电子设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种任务调度方法,其特征在于,应用于任务调度***的调度节点,所述任务调度***包括所述调度节点以及多个任务执行节点,所述方法包括:
将待处理的工作流中的至少一个任务存储到正常任务集合,所述至少一个任务分别具有各自的调度优先级,且每个任务均配置有用于执行所述任务的任务执行节点的信息;
按照所述正常任务集合中任务对应的调度优先级,从所述正常任务集合中取出待调度的目标任务;
依据所述目标任务配置的任务执行节点的信息,执行所述目标任务的分发处理;
如所述目标任务分发失败,将所述目标任务加入到异常任务集合,并返回执行所述从所述正常任务集合中取出待调度的目标任务的操作,直至所述正常任务集合中不存在未被分发的任务。
2.根据权利要求1所述的方法,其特征在于,在所述将所述目标任务加入到异常任务集合之后,还包括:
为所述目标任务设置延迟重试时长;
在所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务从所述异常任务集合转移到所述正常任务集合。
3.根据权利要求2所述的方法,其特征在于,在将所述目标任务加入到异常任务集合之后,还包括:
更新所述目标任务进入所述异常任务集合的进入次数;
所述为所述目标任务设置延迟重试时长,包括:
根据更新后的所述进入次数,为所述目标任务设置延迟重试时长,其中,进入次数越多,所述延迟重试时长越长。
4.根据权利要求1所述的方法,其特征在于,如所述目标任务分发失败,将所述目标任务加入到异常任务集合,包括:
如所述目标任务分发失败,更新所述目标任务的分发失败次数;
如所述分发失败次数未达到设定次数,返回执行所述依据所述目标任务配置的任务执行节点的信息,执行所述目标任务的分发处理的操作;
如所述分发失败次数达到所述设定次数,将所述目标任务加入到异常任务集合。
5.根据权利要求1所述的方法,其特征在于,所述将待处理的工作流中的至少一个任务存储到正常任务集合,包括:
确定待处理的工作流中待调度处理的至少一个任务;
按照所述至少一个任务各自的调度优先级,将所述至少一个任务加入到正常任务队列,其中,调度优先级越高的任务在所述正常任务队列中的排序越靠前;
所述按照所述正常任务集合中任务对应的调度优先级,从所述正常任务集合中取出待调度的目标任务,包括:
按照所述正常任务队列中各任务的先后顺序,从所述正常任务队列中取出待调度的目标任务。
6.根据权利要求2所述的方法,其特征在于,所述为所述目标任务设置延迟重试时长,包括:
通过异常监控线程为所述目标任务设置延迟重试时长;
所述在所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务加入到所述正常任务集合,包括:
通过所述异常监控线程监控所述异常任务集合中各任务当前加入所述异常任务集合的时长;
在所述异常监控线程确认所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务从所述异常任务集合转移到所述正常任务集合。
7.一种任务调度装置,其特征在于,应用于任务调度***的调度节点,所述任务调度***包括所述调度节点以及多个任务执行节点,所述装置包括:
任务存储单元,用于将待处理的工作流中的至少一个任务存储到正常任务集合,所述至少一个任务分别具有各自的调度优先级,且每个任务均配置有用于执行所述任务的任务执行节点的信息;
任务调度单元,用于按照所述正常任务集合中任务对应的调度优先级,从所述正常任务集合中取出待调度的目标任务;
任务分发单元,用于依据所述目标任务配置的任务执行节点的信息,执行所述目标任务的分发处理;
异常处理单元,用于如所述目标任务分发失败,将所述目标任务加入到异常任务集合,并返回执行所述从所述正常任务集合中取出待调度的目标任务的操作,直至所述正常任务集合中不存在未被分发的任务。
8.根据权利要求7所述的装置,其特征在于,还包括:
延迟设置单元,用于在所述异常处理单元将所述目标任务加入到异常任务集合之后,为所述目标任务设置延迟重试时长;
任务重试单元,用于在所述目标任务本次加入所述异常任务集合的时长达到所述目标任务的延迟重试时长后,将所述目标任务从所述异常任务集合转移到所述正常任务集合。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1至7任意一项所述的任务调度方法。
10.一种电子设备,其特征在于,包括至少一个处理器、与处理器连接的至少一个存储器以及总线;
其中,所述处理器、所述存储器通过总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至7中任一项所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011548515.7A CN114661432A (zh) | 2020-12-24 | 2020-12-24 | 任务调度方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011548515.7A CN114661432A (zh) | 2020-12-24 | 2020-12-24 | 任务调度方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661432A true CN114661432A (zh) | 2022-06-24 |
Family
ID=82024854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011548515.7A Pending CN114661432A (zh) | 2020-12-24 | 2020-12-24 | 任务调度方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661432A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115099693A (zh) * | 2022-07-21 | 2022-09-23 | 宁波迈泰克磁材科技有限公司 | 一种烧结钕铁硼磁钢材料的生产控制方法及*** |
-
2020
- 2020-12-24 CN CN202011548515.7A patent/CN114661432A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115099693A (zh) * | 2022-07-21 | 2022-09-23 | 宁波迈泰克磁材科技有限公司 | 一种烧结钕铁硼磁钢材料的生产控制方法及*** |
CN115099693B (zh) * | 2022-07-21 | 2023-10-13 | 宁波迈泰克磁材科技有限公司 | 一种烧结钕铁硼磁钢材料的生产控制方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450979B (zh) | 一种区块链共识方法及装置 | |
US20070240143A1 (en) | Migratable unit based application migration | |
US9535754B1 (en) | Dynamic provisioning of computing resources | |
CN107273195B (zh) | 一种大数据的批处理方法、装置及计算机*** | |
CN111090502B (zh) | 一种流数据任务调度方法和装置 | |
CN109710394A (zh) | 定时任务处理***及方法 | |
CN111104227B (zh) | 一种K8s平台的资源控制方法、装置及相关组件 | |
CN112748993A (zh) | 任务执行方法、装置、存储介质及电子设备 | |
CN110990136B (zh) | 一种任务处理方法和任务调度器 | |
CN113867957A (zh) | 一种跨集群容器数量弹性伸缩实现方法及装置 | |
CN107577527B (zh) | 任务生成、调度方法及装置 | |
CN114661432A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN115202898A (zh) | 消息消费方法、装置、计算机设备和存储介质 | |
CN103593606B (zh) | 上下文信息管理方法及*** | |
CN110968406B (zh) | 处理任务的方法、装置、存储介质和处理器 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN116594734A (zh) | 容器迁移方法、装置、存储介质及电子设备 | |
CN116737345A (zh) | 分布式任务处理***及方法、装置、存储介质以及设备 | |
US10901972B2 (en) | Table partition configuration method, apparatus and system for database system | |
CN111400032A (zh) | 一种资源分配的方法及装置 | |
CN115220887A (zh) | 调度信息的处理方法、任务处理***、处理器和电子设备 | |
CN114791884A (zh) | 测试环境的构建方法、装置、存储介质及电子设备 | |
CN112860779A (zh) | 一种批量数据导入方法及装置 | |
CN112596915A (zh) | 一种分布式锁调度方法、装置、设备及介质 | |
CN112579145A (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 |