CN111913793A - 分布式任务调度方法、装置、节点设备和系统 - Google Patents
分布式任务调度方法、装置、节点设备和系统 Download PDFInfo
- Publication number
- CN111913793A CN111913793A CN202010758818.5A CN202010758818A CN111913793A CN 111913793 A CN111913793 A CN 111913793A CN 202010758818 A CN202010758818 A CN 202010758818A CN 111913793 A CN111913793 A CN 111913793A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- distributed
- distributed memory
- memory queue
- 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 48
- 230000015654 memory Effects 0.000 claims abstract description 162
- 238000003860 storage Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 239000010453 quartz Substances 0.000 description 6
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect 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
- 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本申请公开了一种分布式任务调度方法、装置、节点设备和系统,适用于调度集群中的至少一个节点设备,包括:基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的可执行任务存入分布式内存队列中,所述分布式内存队列对所述调度集群中的所有节点设备的权限对等;按照调度策略调度分布式内存队列中的可执行任务。节点设备不存在主从节点角色,每个节点均可以在分布式内存队列中存入和抓取可执行任务。任意节点都能提供提交和调度的服务,在其中一个节点宕机之后,其他节点仍可以进行任务提交和任务调度,可以有效防止调度队列中的状态数据丢失,大大提升任务调度的可靠性。
Description
技术领域
本申请涉及计算机数据处理领域,具体而言,涉及一种分布式任务调度方法、装置、节点设备和系统。
背景技术
随着信息技术的发展,尤其是以互联网为核心的应用深入到人们的日常社会活动和生产中。一个日常手机和网页应用功能,在其背后往往有多个系统支撑。一个简单的页面操作,在其后台往往会被拆分成多个不同类型的小任务,这些任务按照一定顺序关系由不同业务系统协同完成。协调这些不同类型、不同系统的任务按照正确的秩序执行称之为任务调度。
针对上述问题,相关技术中所采用的调度方法通常为先确定一个主节点运行调度进程,通常在进行任务调度时,从任务列表,即任务数据库中读取当前可以执行的任务,加入到主节点的任务调度队列,该任务调度队列中存储有从任务列表中读取的满足执行条件的可执行任务(可执行任务的状态数据),在对任务执行端(从节点)的资源进行检测后,依据调度策略在任务调度队列中取出可执行任务供任务执行端执行。通常主节点正常的情况下,上述任务调度流程可以有序高效执行,但是如果主节点异常宕机或者出现主从节点切换时,主节点中的当前调度队列中已存在的数据很可能发生丢失,影响任务正常执行,降低了任务调度的可靠性。
因此,如何提高任务调度可靠性成为亟待解决的技术问题。
发明内容
本申请的主要目的在于提供一种分布式任务调度方法、装置、系统和电子设备,以解决如何提高任务调度的可靠性的技术问题。
为了实现上述目的,根据本申请的一个方面,提供了一种分布式任务调度方法,适用于调度集群中的至少一个节点设备,包括:基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的存入分布式内存队列中,所述分布式内存队列对所述调度集群中的所有节点设备的权限对等;按照调度策略调度分布式内存队列中的可执行任务。
可选地,在所述将任务列表中满足任务执行条件的存入分布式内存队列中之前包括:与所述分布式内存队列创建访问连接。
可选地,所述与分布式内存队列创建连接包括:检测所述调度集群中是否存在所述分布式内存队列;如果存在,则与所述分布式内存队列建立访问连接;如果不存在,则创建所述所述分布式内存队列,并与所述调度集群中的节点设备建立访问连。
可选地,所述将任务列表中满足任务执行条件的存入分布式内存队列中包括:以定时扫描或父任务触发的方式查找任务列表中达到可执行条件的任务存入分布式内存队列中。
可选地,所述基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的可执行任务存入分布式内存队列中包括:针对所述的分布式内存队列建立分布式字典,将所述可执行任务的主键信息作为所述分布式内存队列的分布式内存字典的key,将所述可执行任务的状态信息作为所述分布式内存队列的分布式内存字典的value。
可选地,所述状态信息包括任务的执行状态信息,在所述将所述可执行任务加入到分布式任务队列中之后包括:对所述任务列表进行第一更新操作,所述第一更新操作包括更新任务列表中该可执行任务的执行状态信息。
可选地,所述状态信息包括任务的优先级信息,所述按照调度策略调度分布式内存队列中的可执行任务任务执行端包括:检测任务执行节点端的系统资源;当系统资源充足时,依据所述分布式内存字典在所述分布式内存队列中依次调度优先级最高的可执行任务至任务执行节点设备。
可选地,在所述基于预设调度策略在所述分布式内存队列中提取所述可执行任务以执行所述可执行任务之后包括:对所述任务列表和所述分布式内存队列进行第二更新操作,所述第二更新操作包括提升所述分布式内存队列中剩余任务的任务优先级。
可选地,所述在所述将所述可执行任务存入到分布式内存队列中之后包括:发送任务执行通知至执行端;所述按照调度策略调度分布式内存队列中的可执行任务至任务执行端之后包括:发送任务执行完成通知至调度集群中的节点设备。
根据第二方面,本发明实施例提供了一种分布式任务调度装置,适用于调度集群中的至少一个节点设备,包括:提交模块,用于基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的存入分布式内存队列中,所述分布式内存队列对所述调度集群中的所有节点设备的权限对等;调度模块,用于按照调度策略调度分布式内存队列中的可执行任务至任务执行端。
根据第三方面,本发明实施例提供了一种节点设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行上述第一方面任一项所述的分布式调度方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行上述第一方面任意一项描述的分布式任务调度方法。
根据第五方面,本发明实施例提供了一种分布式任务调度系统,包括:第一存储模块,用于存储任务列表;调度集群,包括多个如上述第三方面描述的节点设备;第二存储模块,设置在任意节点设备上,用于存储分布式内存队列;所述分布式内存队列可与任意所述节点设备建立连接关系,并对所述调度集群中的所有节点设备的权限对等。
由于对调度集群中的任意节点设备对分布式内存队列中的数据的访问权限一致,任意节点设备在任意时刻均有权限对分布式内存队列中的数据进行增、删、改、查等操作,即分布式内存队列不隶属于任何节点设备,节点设备不存在主从节点角色,每个节点设备均可以在任意时间在分布式内存队列中存入可执行任务,并且,在任务执行之前,需要从分布式内存队列中按照调度策略将可执行任务分发至执行端进行执行。任意节点都能提供任务提交和任务调度(任务分发)的服务,在其中一个节点宕机之后,其他节点仍可以针对分布式内存队列进行任务提交和任务调度,可以有效防止已经从任务列表中提取的可执行任务的状态数据丢失,大大提升任务调度的可靠性。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例的分布式任务调度方法的流程示意图;
图2示出了本申请实施例的调度集群关系示意图;
图3示出了本申请另一实施例的分布式任务调度方法的流程示意图;
图4示出了本申请实施例的分布式任务调度装置的意图;
图5示出了本申请实施例节点设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
首先对本申请中的属于进行解释:
调度集群,由多个调度功能的节点设备组成的集群;
任务列表,即任务池,业务层存储任务的组件,是任务的容器,集中存放任务的基础配置和任务之间的关系信息,存放了所有不同类型、不同系统的任务,通常由物理存储器实现,例如利用数据库实现;本发明的任务具有任务ID和任务的优先级信息。任务ID可以理解为任务的主键信息。
调度队列,通常在现有技术中设置于主节点,存储主节点在任务列表中读取的满足执行条件的可执行任务的状态数据,例如,可执行任务的主键信息、优先级信息等;
分布式内存队列,是一种分布式内存数据结构。本发明中可以为基于ignite嵌入式服务框架创建的分布式内存字典,存储有满足执行条件的可执行任务的状态数据,示例性的,可执行任务的主键信息可以作为分布式内存队列创建的分布式内存字典的元素的key,状态数据中优先级信息可以作为分布式内存字典的元素的value,分布式内存数据结构对调度集群每个节点的权限对等,调度集群的任意节点设备都可以访问该分布式内存队列,任意节点设备在任意时刻访问该分布式内存队列中的数据都是一致的,即调度集群中的各个节点设备相对于分布式队列不存在主从关系。现有的任务执行的方法中,通常每个节点执行不同的任务,对于任意一个节点而言,每执行一个任务都需要读写一次任务列表即任务数据库,读取要执行的任务,从而导致单个节点的处理能力依赖于数据库的读写能力。
现有的基于主从模式的调度系统在主节点宕机时,主节点中的调度队列中已存在的数据很可能丢失,影响任务正常执行,任务调度的性能和可靠性也大大降低。发明人发现,现有技术中为了防止任务执行时出现任务丢失,在任务执行阶段将已经到期任务(需要立即执行的任务)存入存储器,该存储器可供任意执行端随机随时抓取任务进行立即执行,这样可以防止任务执行端在出现宕机时,出现任务丢失,但是该方法针对已经调度好的需要立即执行的任务提供一个可供执行端抓取任务的存储器。但是任务调度时,依旧采用主从关系进行调度,调度队列存储于主节点中,在调度队列中的任务到期需要立即执行时,将该到期任务放入上述的存储器中。过期的任务不会出现丢失,但是发明人发现,按照上述方案进行任务调度时,过期的任务丢失的问题解决,但是正常调度的没有过期的任务依然会出现丢失的现象,发明人经过研究发现,无论是背景技术中阐述的现有技术,还是上述的现有技术中均存在同一一个问题,即在进行任务调度时采用主从关系的调度节点进行调度,如果主节点宕机时,将当前其他节点切换为主节点时,已经存储于出现宕机的主节点中的调度队列中的数据无法切换至新的主节点,此时在主节点宕机后,宕机的主节点中的调度队列中的数据可能会发生丢失的风险。
因此,针对上述情况,发明人提出了一种分布式任务调度方法,调度集群中的任意一个或多个节点设备均可以作为调度节点存储完成调度功能的模块或程序例如定时任务框架Quartz,并且,在调度集群中的任意一个或多个节点设备上创建一个分布式内存队列作为任务调度队列,存储从任务列表中调度的可执行任务的状态数据,该分布式内存队列相对于任意节点设备均是对等的,即任意节点设备均可以随时访问该分布式内存队列,并且可以对该分布式内存队列中的任务进行增删改查等操作。
具体的,调度集群中的任意节点设备均可执行本实施例中的分布式任务调度方法,具体分布式任务调度方法的步骤可以参见图1所示:
S100.基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的可执行任务加入到分布式内存队列中。示例性的,任务列表存放待执行的任务的基础配置和任务之间的关系信息,任务列表中具有不同状态信息的多个任务,例如,没有达到任务执行条件的任务,达到可执行任务条件的任务,已被调度的任务以及已被执行的任务等,在本实施例中,可以将可执行任务的主键信息和优先级信息等状态数据以调度队列的方式存储于分布式内存队列中,例如,可以在分布式内存队列中创建分布式内存字典,将可执行任务的主键信息作为分布式内存字典的元素的key值,将优先级信息作为分布式内存字典的元素的value值,形成任务调度队列,等待调度模块将调度队列中的可执行任务调度至任务执行端进行执行。示例性的,可以参见图2所示的调度集群中的节点关系示意图,分布式内存队列可以创建在任意的节点设备上,调度集群中的任意节点可以通过集群网络查找到该创建有分布式内存队列的节点。在本实施例中,调度集群中的节点设备作为调度节点既具有进行任务提交的任务提交模块,即从任务列表中提取任务至分布式内存队列;也可以具有进行任务调度的任务调度模块,即按照调度策略将任务分发至任务执行端;执行端返回任务执行结果至调度模块。当然,调度集群中的节点设备也可以作为任务执行端,但任务执行端所执行的任务需要通过调度模块按照调度策略分发至该任务执行端后以可执行,本领域技术人员应当明白,任务执行端可以为调度集群中的节点设备,也可以为调度集群之外的设备,例如业务方的节点设备。调度集群中的至少一个节点设备在任务列表中发现达到可执行任务条件的可执行任务后,将可执行任务加入到分布式内存队列中,调度集群中的所有节点设备可删除、修改、查看分布式内存队列中新加入的任务。
S200.按照调度策略调度分布式内存队列中的可执行任务至任务执行端。在可执行任务加入到分布式内存队列中后,可执行任务可以被调度集群中的任意节点设备按照调度策略将分布式内存队列中的可执行任务分发至任务执行端,例如,可以包括按照可执行的任务优先级策略分发任务,按照共享方式策略分发任务,按照先进先出方式策略分发任务等。示例性的,以优先级策略为例进行说明,分布式内存队列对任意设备节点的权限对等,节点设备可以按照分布式内存队列中的任务类型或者任务实例确定调度优先级,将分布式内存队列中的任务依次按照有优先级将可执行任务分发至任务执行端。
本申请实施例中的分布式内存队列对集群中的所有节点设备的权限对等,分布式内存队列中的数据不隶属于任意节点设备,节点设备不存在主从节点角色,每个节点设备均可以在任意时间在分布式内存队列中存入可执行任务,并且,在任务执行之前需要从分布式内存队列中按照调度策略将可执行任务分发至任务执行端进行执行。任意节点都能提供任务提交和任务调度的服务,在其中一个节点宕机之后,其他节点仍可以针对分布式内存队列进行任务提交和任务调度,可以有效防止已经从任务列表中提取的可执行任务的状态数据丢失,大大提升任务调度的可靠性。
作为示例性的实施例,以调度集群中的节点设备具有任务提交和任务调度功能为例进行说明,示例性的,调度集群中的节点设备可以具有任务提交模块和任务调度模块以执行任务提取和任务调度,具体的,分布式任务调度方法如图3所示,该方法可以包括如下步骤:
S10.节点设备启动时控制节点设备与分布式内存队列创建连接。作为示例性的实施例,在调度集群中的任意节点设备上均可以创建分布式内存队列,分布式内存队列作为单独的一个分布式数据库加入调度集群网络中,所有的节点设备访问该分布式数据库的权限是对等的。在调度集群中的任意节点设备在启动时或者新节点加入调度集群时,如果调度集群网络中已经存在该分布式内存队列,则将新启动的节点设备或新加入调度集群的节点设备与分布式内存队列建立访问连接,以进行任务的增、删、改、查等操作。若节点设备在启动时或者新节点加入调度集群时,调度集群中不存在分布式内存队列,则由新启动或新加入的节点设备创建该分布式内存队列,调度集群中其他的节点设备与该分布式内存队列建立访问连接,以进行任务的增、删、改、查等操作。
示例性的,分布式内存队列可以基于ignite嵌入式服务框架实现,在调度集群中任意节点设备使用ignite嵌入式服务框架建立分布式内存队列后,并且该节点设备启动后,调度集群中已启动的节点设备会自动与分布式内存队列建立访问连接,,在节点设备启动或加入调度集群时,如果没有对应的分布式内存队列,则基于ignite嵌入式服务框架建立分布式内存队列。
S20.任务提交模块基于任务列表中各个任务的执行状态信息在任务执行列表中查找达到执行条件的可执行任务。在本实施例中,可以以定时扫描任或父任务触发的方式查找任务列表中达到可执行条件的任务,具体的,接收到父任务执行成功后的通知,检测其子任务是否达到可执行条件,如果是,则将与父任务对应的子任务作为可执行任务。或者,按一定频率扫描任务列表,发现有任务达到可执行条件,将该任务作为可执行任务。
S30.任务提交模块将可执行任务存入分布式内存队列中,示例性的,可以将可执行任务的主键信息和优先级信息等状态数据以调度队列的方式存储于分布式内存队列中,同时对任务列表进行第一更新操作,本申请中所称的第一更新操作可以为更新任务列表中的该任务的执行状态为已提交状态,表示已加入到分布式内存队列中了,并通知任务调度模块有新的任务加入。任务提交模块按一定频率扫描任务列表功能可以通过quartz服务框架采用分布式模式运行实现。
S40.任务调度模块检测执行端的系统资源。在本实施例中,所称的系统资源可以包括:CPU资源、内存资源、硬盘资源和网络资源。对于资源的检测,可以通过定时任务框架Quartz,按照一定频率运行任一执行端资源检测功能,定时任务框架Quartz在对执行端进行资源检测时,也是基于分布式模式,所有执行端对于定时任务框架Quartz的权限相同。如果系统资源充足,则进入步骤S50。
S50.按照调度策略调度分布式内存队列中的可执行任务至任务执行端。所称调度策略可以为按照任务优先级调度的策略,示例性的,可以依据所述分布式内存字典在分布式内存队列中依次调度优先级最高的可执行任务至任务执行端,发送任务执行通知至执行端,以通知执行端对任务进行执行。在依次调度优先级最高的可执行任务至任务执行端之后对所述任务列表和/或所述分布式内存队列进行第二更新操作,所称的第二更新操作可以为在分布式内存队列中删除正在执行的任务,提升剩余任务优先级分数,和/或,更新任务列表中该任务的执行状态为已调度至任务执行端或正在执行状态,表示该任务正在运行。任务在执行端执行完成后,可以对任务列表进行第三更新操作,例如,可以更新任务列表中该任务的执行状态已执行,表示该任务已经运行完成,并通知提交模块在任务列表中查找对应的子任务。可以减小提交模块任务扫描压力,提升系统执行任务的及时性,增强系统性能。
依据所述分布式内存字典在分布式内存队列中依次调度优先级最高的可执行任务至任务执行端包括查询分布式内存字典的Value值和key值,确定优先级最高的任务的key,并基于key值从分布式内存队列中调度该可执行任务至任务执行端。由于对调度集群中的任意节点设备对分布式内存队列中的数据的访问权限一致,任意节点设备在任意时刻均有权限对分布式内存队列中的数据进行增、删、改、查等操作,即分布式内存队列不隶属于任何节点设备,并且,调度集群中每个节点设备都能提供任务提交和任务分发的服务,在一个节点设备宕机后,其他节点仍可以针对分布式内存队列进行任务提交和任务调度,可以有效防止已经提取的可执行任务的状态数据丢失,大大提升任务调度的可靠性。
本发明实施例还提供了一种分布式任务调度装置,适用于调度集群中的至少一个节点设备,如图4所示,该装置包括:提交模块10,用于基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的存入分布式内存队列中,所述分布式内存队列对所述调度集群中的所有节点设备的权限对等;调度模块20,用于按照调度策略调度分布式内存队列中的可执行任务。
本发明实施例还提供了一种本发明实施例提供了一种电子设备,如图5所示,该电子设备包括一个或多个处理器51以及存储器52,图5中以一个处理器53为例。
该控制器还可以包括:输入装置53和输出装置54。
处理器51、存储器52、输入装置53和输出装置54可以通过总线或者其他方式连接,图5中以通过总线连接为例。
处理器51可以为中央处理器(CentralProcessingUnit,CPU)。处理器51还可以为其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的控制方法对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的分布式任务调度方法。
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置53可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备。
一个或者多个模块存储在存储器52中,当被一个或者多个处理器71执行时,执行如图1或3任意一项所示的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
本发明实施例提供了一种分布式任务调度系统,如图所示,该系统可以包括:第一存储模块,用于存储任务列表,该第一存储模块可以为存储任务的数据库;
调度集群,包括多个节点设备,还节点设备可以执行上述实施例中的任务调度方法,其中,任意节点设备具有任务提交服务,也可以任务调度服务,并且,任意节点设备对于分布式内存队列的权限是对等的,都可以在分布式内存队列中存入任务和提取任务。
第二存储模块,用于存储分布式内存队列;本申请中的第二存储模块可以设置在调度集群中的任意节点设备上。并且,任意节点设备上的第二存储模块中的分布式任务队列可以被任意节点检测到,并能够与调度集群中的任意节点建立连接关系。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种分布式任务调度方法,其特征在于,适用于调度集群中的至少一个节点设备,所述方法包括:
基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的可执行任务存入分布式内存队列中,所述分布式内存队列对所述调度集群中的所有节点设备的权限对等;
按照调度策略调度分布式内存队列中的可执行任务至任务执行端。
2.如权利要求1所述的分布式任务调度方法,其特征在于,所述将任务列表中满足任务执行条件的存入分布式内存队列中包括:
以定时扫描或父任务触发的方式查找任务列表中达到可执行条件的任务存入分布式内存队列中。
3.如权利要求1所述的分布式任务调度方法,其特征在于,所述基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的可执行任务存入分布式内存队列中包括:针对所述的分布式内存队列建立分布式字典,将所述可执行任务的主键信息作为所述分布式内存队列的分布式内存字典的key,将所述可执行任务的状态信息作为所述分布式内存队列的分布式内存字典的value。
4.如权利要求1所述的分布式任务调度方法,其特征在于,所述状态信息包括任务的执行状态信息,在所述将所述可执行任务加入到分布式任务队列中之后包括:
对所述任务列表进行第一更新操作,所述第一更新操作包括更新任务列表中该可执行任务的执行状态信息。
5.如权利要求1所述的分布式任务调度方法,其特征在于,所述状态信息包括任务的优先级信息,所述按照调度策略调度分布式内存队列中的可执行任务至任务执行端包括:
检测任务执行端的系统资源;
当系统资源充足时,依据所述分布式内存字典在所述分布式内存队列中依次调度优先级最高的可执行任务至任务执行端。
6.如权利要求5所述的分布式任务调度方法,其特征在于,在所述依据所述分布式内存字典在所述分布式内存队列中依次调度优先级最高的可执行任务至任务执行端之后包括:
对所述所述分布式内存队列进行第二更新操作,所述第二更新操作包括提升所述分布式内存队列中剩余任务的任务优先级。
7.如权利要求1所述的分布式任务调度方法,其特征在于,
所述在所述将所述可执行任务存入到分布式内存队列中之后包括:
发送任务执行通知至执行端;
所述按照调度策略调度分布式内存队列中的可执行任务至任务执行端之后包括:
发送任务执行完成通知至调度集群中的节点设备。
8.一种分布式任务调度装置,其特征在于,适用于调度集群中的至少一个节点设备,包括:
提交模块,用于基于任务列表中各个任务的执行状态信息将任务列表中满足任务执行条件的存入分布式内存队列中,所述分布式内存队列对所述调度集群中的所有节点设备的权限对等;
调度模块,用于按照调度策略调度分布式内存队列中的可执行任务至执行端。
9.一种节点设备,其特征在于包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7任一项所述的分布式调度方法。
10.一种分布式任务调度系统,其特征在于,包括:
第一存储模块,用于存储任务列表;
调度集群,包括多个如权利要求9所述的节点设备;
第二存储模块,设置在任意节点设备上,用于存储分布式内存队列;
任意所述节点设备可加入所述分布式内存队列,所述分布式内存队列对所述调度集群中的所有节点设备的权限对等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010758818.5A CN111913793A (zh) | 2020-07-31 | 2020-07-31 | 分布式任务调度方法、装置、节点设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010758818.5A CN111913793A (zh) | 2020-07-31 | 2020-07-31 | 分布式任务调度方法、装置、节点设备和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111913793A true CN111913793A (zh) | 2020-11-10 |
Family
ID=73286892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010758818.5A Pending CN111913793A (zh) | 2020-07-31 | 2020-07-31 | 分布式任务调度方法、装置、节点设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913793A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965796A (zh) * | 2021-03-01 | 2021-06-15 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN113010531A (zh) * | 2021-02-05 | 2021-06-22 | 成都库珀区块链科技有限公司 | 一种基于有向无环图的区块链baas系统任务调度框架 |
CN113157420A (zh) * | 2021-04-27 | 2021-07-23 | 上海临视人工智能科技有限公司 | 跨平台分布式任务调度系统及调度方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656690A (zh) * | 2017-10-11 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 调度系统、方法和存储介质 |
US20200104170A1 (en) * | 2018-09-28 | 2020-04-02 | Atlassian Pty Ltd | Systems and methods for scheduling tasks |
CN111190731A (zh) * | 2019-12-26 | 2020-05-22 | 集奥聚合(北京)人工智能科技有限公司 | 基于权重的集群任务调度系统 |
CN111221632A (zh) * | 2019-10-15 | 2020-06-02 | 中国平安财产保险股份有限公司 | 分布式并行任务调度方法、装置、计算机设备和存储介质 |
CN111338773A (zh) * | 2020-02-21 | 2020-06-26 | 华云数据有限公司 | 一种分布式定时任务调度方法、调度系统及服务器集群 |
-
2020
- 2020-07-31 CN CN202010758818.5A patent/CN111913793A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656690A (zh) * | 2017-10-11 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 调度系统、方法和存储介质 |
US20200104170A1 (en) * | 2018-09-28 | 2020-04-02 | Atlassian Pty Ltd | Systems and methods for scheduling tasks |
CN111221632A (zh) * | 2019-10-15 | 2020-06-02 | 中国平安财产保险股份有限公司 | 分布式并行任务调度方法、装置、计算机设备和存储介质 |
CN111190731A (zh) * | 2019-12-26 | 2020-05-22 | 集奥聚合(北京)人工智能科技有限公司 | 基于权重的集群任务调度系统 |
CN111338773A (zh) * | 2020-02-21 | 2020-06-26 | 华云数据有限公司 | 一种分布式定时任务调度方法、调度系统及服务器集群 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010531A (zh) * | 2021-02-05 | 2021-06-22 | 成都库珀区块链科技有限公司 | 一种基于有向无环图的区块链baas系统任务调度框架 |
CN113010531B (zh) * | 2021-02-05 | 2022-11-01 | 成都库珀创新科技有限公司 | 一种基于有向无环图的区块链baas系统任务调度框架 |
CN112965796A (zh) * | 2021-03-01 | 2021-06-15 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN112965796B (zh) * | 2021-03-01 | 2024-04-09 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN113157420A (zh) * | 2021-04-27 | 2021-07-23 | 上海临视人工智能科技有限公司 | 跨平台分布式任务调度系统及调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913793A (zh) | 分布式任务调度方法、装置、节点设备和系统 | |
CN111950988B (zh) | 分布式工作流调度方法、装置、存储介质及电子设备 | |
CN106776395B (zh) | 一种共享集群的任务调度方法及装置 | |
US11336588B2 (en) | Metadata driven static determination of controller availability | |
CN106302709B (zh) | 一种网络文件管理的实现方法和系统 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
WO2021169123A1 (zh) | 集群环境定时任务处理方法、系统、装置及存储介质 | |
CN112667383B (zh) | 一种任务执行及调度方法、系统、装置、计算设备及介质 | |
JP7161560B2 (ja) | 人工知能開発プラットフォームの管理方法及び装置、媒体 | |
US11397632B2 (en) | Safely recovering workloads within a finite timeframe from unhealthy cluster nodes | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN111258726A (zh) | 任务调度方法和装置 | |
CN112202834A (zh) | 一种数据处理方法、数据处理装置及节点服务器 | |
CN110737526A (zh) | 一种基于Redis的分布式集群下的定时任务管理方法及装置 | |
CN112199200B (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN108733536B (zh) | 监控管理系统及方法 | |
CN106550021B (zh) | 推送消息的推送方法及装置 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN111782373B (zh) | 作业调度方法及装置 | |
CN112217849A (zh) | Sd-wan系统中的任务调度方法、系统和计算机设备 | |
US11768704B2 (en) | Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling | |
CN114924806B (zh) | 一种配置信息的动态同步方法、装置、设备及介质 | |
CN115328670B (zh) | 一种异步任务处理方法、系统和服务器 | |
CN112433860B (zh) | 一种事件管理的方法、系统、设备及介质 | |
CN106649625B (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 |