CN111949386A - 一种任务调度方法、系统、计算装置及可读存储介质 - Google Patents
一种任务调度方法、系统、计算装置及可读存储介质 Download PDFInfo
- Publication number
- CN111949386A CN111949386A CN202010659344.9A CN202010659344A CN111949386A CN 111949386 A CN111949386 A CN 111949386A CN 202010659344 A CN202010659344 A CN 202010659344A CN 111949386 A CN111949386 A CN 111949386A
- Authority
- CN
- China
- Prior art keywords
- task
- time
- queue
- executor
- scheduler
- 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 91
- 238000012545 processing Methods 0.000 claims abstract description 61
- 238000013500 data storage Methods 0.000 claims abstract description 47
- 230000015654 memory Effects 0.000 claims description 35
- 238000001514 detection method Methods 0.000 claims description 6
- 230000002085 persistent effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 239000010453 quartz Substances 0.000 description 3
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000007958 sleep 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
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
技术领域
本发明涉及数据处理领域,尤其涉及一种任务调度方法、系统、计算设备及可读存储介质。
背景技术
任务调度在业务系统中极为常见,业务多样化衍生出不同的业务系统,这就需要一种统一的任务调度系统来管理各部门业务的任务调度工作,且保证各部门业务正常运行。
任务调度的实现方式很多,常见的技术有quartz、spring task、timer等,但都适于单机调度,不适合在集群环境中分布式部署,为解决这一问题,衍生出来很多的开源框架,典型代表是基于quartz框架进行二次开发xxl-job,该方法在在商家平台的初期阶段,因为业务系统中任务数据量小,业务的系统执行器也少,应用场景简单,在集群环境调度机器中,所有任务调度由其中一台机器触发,通过远程RPC形式调用执行器,任务调度简单快速有效。但这种方式不适合应用在任务万级以上场景中,基于quartz框架,底层以“抢占式”获取DB锁,由抢占成功节点负责调度所有任务,这导致节点负载悬殊较大,因为任务数量较大,抢占成功的节点在规定的时间不能处理完,使一些任务无法按规定时间调度,同时,任务数量较多时因为执行器一直通过远程RPC调用调度系统,加上过多任务不能执行完,以及后续的执行器远程RPC反馈结果,导致调度系统负载过高,最终会导致调度系统瘫痪。
后来发展成为把所有的任务都加入到抢占机器的内存线程池中,由线程池开启新线程远程RPC调用业务执行器,执行器接收到调度指令,把任务指令全部放在内存线程池中,再由线程池开启新线程执行任务,待任务执行完成之后,把任务执行结果加入内存线程池中,再由线程池开启新线程,远程RPC调用调度系统告知最终执行结果,该方案的主要缺点是任务丢失问题,由于调度任务都加入到抢占调度节点成功机器内存线程池中,如果任务没有执行完成,由于某种原因导致调度实例阻塞,无法告知执行器,后续接收到所有的任务指令和任务执行结果,也全部加入当前机器内存线程池中,如果执行器阻塞,会导致所有未执行任务无法执行,以及执行的任务无法反馈结果,导致调度系统后续的重试以及错误告警等。
发明内容
为此,本发明提供了一种任务调度方法、系统、计算设备及可读存储介质,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供了一种任务调度方法,适于在任务调度系统中执行,任务调度系统包括多个调度器,多个执行器,协调服务器和数据存储装置,数据存储装置包括预定数量个任务队列,该方法包括,接收待处理的任务,任务包含执行器、执行时间、任务标识,根据任务标识将任务与执行器关联的存储到任务队列中;调度器每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器;调度器每隔第二预定时间获取时间轮容器中当前时刻的任务,并将获取的任务插入该任务关联的执行器的任务执行器队列中,任务执行器队列由协调服务器创建;执行器从任务执行器队列中获取任务进行处理,并将任务执行结果加入任务结果队列中,任务结果队列由协调服务器创建;调度器获取任务结果队列中的任务执行结果,并存储到数据存储装置中。
可选地,在根据本发明的任务调度方法中,还包括:当有调度器发生故障时,数据存储装置中的预定数量个任务队列重新分配到剩余的非故障调度器上。
可选地,在根据本发明的任务调度方法中,调度器包括多个调度器实例,调度器每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器包括:调度器实例抢占预拉取任务锁;若抢占到预拉取任务锁,该调度器实例获取该调度器对应的任务队列中的任务;若任务的执行时间小于或等于当前时间减去第一预定时间,则丢弃;若任务的执行时间在当前时间减去第一预定时间与当前时间之间,则将该任务插入该任务对应的执行器的任务执行队列中;若任务的执行时间在当前时间与当前时间加上第一预定时间之间,则将该任务插入时间轮容器。
可选地,在根据本发明的任务调度方法中,若任务的执行时间在当前时间减去第一预定时间与当前时间之间,则将该任务插入该任务对应的执行器的任务执行队列中还包括:计算该任务的下一次执行时间,若该任务的下一次执行时间在当前时间加上第一预定时间内,则将该任务添加到时间轮容器;并将该任务的下一次执行时间持久化到数据存储装置中。
可选地,在根据本发明的任务调度方法中,执行器包括多个执行器实例,执行器从任务执行器队列中获取任务进行处理包括:执行器实例检测自身的处理能力是否满足处理条件;若满足处理条件,执行器实例抢占执行器拉取任务锁,若抢占成功,则根据自身的处理能力从任务执行器队列中获取任务进行处理;若不满足处理条件,则休眠等待第三预定时间,进行下一次检测。
可选地,在根据本发明的任务调度方法中,处理条件包括:执行器实例的可用线程数和剩余内存。
可选地,在根据本发明的任务调度方法中,任务包含优先级,从任务执行器队列中获取任务进行处理还包括:根据从任务执行器队列中获取到的任务的优先级进行处理。
可选地,在根据本发明的任务调度方法中,其中,调度器获取任务结果队列中的任务执行结果,并存储到数据存储装置中包括:调度器实例检测自身的处理能力是否满足处理条件;若满足处理条件,调度器实例抢占拉取结果任务锁,若抢占成功,则根据自身的处理能力从任务结果队列中获取任务执行结果,并将任务执行结果存储到数据存储装置中。
可选地,在根据本发明的任务调度方法中,环形时间轮容器的时间跨度大于第一预定时间。
可选地,在根据本发明的任务调度方法中,协调服务器为zookeeper。
根据本发明的又一个方面,提供了一种任务调度系统,包括多个调度器、多个执行器、协调服务器和数据存储装置,其中,数据存储装置,包括预定数量个任务队列,所有任务队列分配到所有调度器,数据存储装置适于存储接收到的待处理的任务和任务执行结果,其中,任务包含的参数有执行器、执行时间、任务标识,数据存储装置在存储任务时根据任务标识将任务与执行器关联的存储到任务队列中;调度器,适于每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器,每隔第二预定时间获取时间轮容器中当前时刻的任务,并将任务插入该任务关联的执行器的任务执行器队列中,获取任务结果队列中的任务执行结果,并存储到数据存储装置中;执行器,适于从任务执行器队列中获取任务进行处理,并将任务执行结果发送到任务结果队列中;协调服务器,适于创建任务执行器队列、任务结果队列。
可选的,在根据本发明的任务调度系统中,数据存储装置还适于在所有任务队列分配到所有调度器时:当有调度器发生故障时,数据存储装置中的预定数量个任务队列重新分配到剩余的非故障调度器上。
可选的,在根据本发明的任务调度系统中,调度器包括多个调度器实例,调度器还适于在每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器时:调度器实例抢占预拉取任务锁;若抢占到预拉取任务锁,该调度器实例获取该调度器对应的任务队列中的任务;若任务的执行时间小于当前时间减去第一预定时间,则丢弃;若任务的执行时间在当前时间减去第一预定时间与当前时间之间,则将该任务插入该任务对应的执行器的任务执行队列中;若任务的执行时间在当前时间与当前时间加上第一预定时间之间,则将该任务插入时间轮容器。
可选的,在根据本发明的任务调度系统中,调度器还适于,若任务的执行时间在当前时间减去第一预定时间与当前时间之间,计算该任务的下一次执行时间;若该任务的下一次执行时间在当前时间加上第一预定时间内,则将该任务添加到时间轮容器;并将该任务的下一次执行时间持久化到数据存储装置中。
可选的,在根据本发明的任务调度系统中,执行器还适于在从任务执行器队列中获取任务进行处理时:执行器实例检测自身的处理能力是否满足处理条件;若满足处理条件,执行器实例抢占执行器拉取任务锁,若抢占成功,则根据自身的处理能力从任务执行器队列中获取任务进行处理;若不满足处理条件,则休眠等待第三预定时间,进行下一次检测。
根据本发明的又一个方面,提供一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行如上的任一项任务调度方法的指令。
根据本发明的又一个方面,提供一种可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行如上的任一项任务调度方法。
根据本发明的任务调度方案,将任务数据库创建成包含预定数量的任务队列,接收到的待处理任务根据任务ID将任务分配到所有的任务队列中,确保每个任务队列上的任务量均差不大,而所有的任务队列又分散对应调度系统中的所有调度器,每个调度器对应固定的任务队列,在触发调度任务时只拉取对应的任务队列中的任务,所有调度器并行工作,避免所有任务都落在一个机器上,实现了去中心化,解决了目前框架的集群环境所有机器通过抢占DB锁,只能由抢占成功的一台实例进行任务调度的缺点,同时,本发明通过获取预定时间内的消息插入时间轮容器,并定时读取时间轮,减轻了数据库操作的压力,并通过并行工作的多个执行器拉取任务,解决了由调度器集中调度的性能压力问题。
如果在调度系统运行中,某调度器故障,会重新分配任务队列到非故障调度器上,保证任务不会丢失,同时,任务执行时考虑了任务的优先级,保证优先级高的任务能够优先执行,进一步,执行器在执行任务时都是按需获取任务,提高了系统的处理能力。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的任务调度系统100的框图;
图2示出了根据本发明一个实施例的计算设备200的框图;
图3示出了根据本发明一个实施例的任务调度方法300的流程图;
图4示出了根据本发明一个实施例的调度器拉取任务的流程图;
图5示出了根据本发明一个实施例的执行器调度任务的流程图;
图6示出了根据本发明一个实施例的调度器持久化任务执行结果的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明实施例的任务调度系统的框图,该任务系统包含若干个调度器110,若干个执行器120,协调服务器130和数据存储装置140,调度器110与数据存储装置140通信连接,各个调度器和各个执行器之间并行工作,应当指出,图1中的任务调度系统仅为示例性的,在具体的实践情况中,系统100中可以有不同数量的调度器110、执行器120,本发明对任务调度系统100中的各个设备的数量不做限制。
数据存储装置140用于存储调度系统接收到的待处理的任务,其中包含多个任务队列,调度系统在接收到待处理的任务时,也会将接收到的任务均匀添加在数据存储装置中的所有任务队列中,接收到的任务的消息体中包含任务对应的执行器、执行时间、任务标识等信息,任务标识可以认为是任务序号,根据任务序号将任务添加到不同的任务队列,根据本发明的一个实施例,将序号为1的任务添加到任务队列1中,序号为2的添加到任务队列2中,以此类推,循环添加,使接收到的所有任务分布在不同的任务队列中,此实施例仅为示例性说明,具体实践中任务如何分配可以根据具体情况设定不同的规则,本发明对此不做限制。
调度系统中的每一个调度器110固定对应数据存储装置140中的部分任务队列,所有任务队列分配到所有调度器上,根据本发明的一个实施例,当有调度器发生故障时,任务队列重新分配到剩余的非故障调度器上,避免故障中的调度器无法拉取其对应的任务队列中的任务,最终导致任务无法执行。调度器每隔预定时间间隔从对应的任务队列中拉取任务,所拉取的任务的执行时间在当前时间加上预定时间间隔范围内,例如,每40秒拉取一次,所拉取的任务的执行时间在40秒之内,调度器中预设有时间轮容器,将拉取到的任务先插入时间轮容器(图1未示出),调度器中还预设有定时器,用于定时从时间轮容器读取当前时刻对应的时间轮卡槽内的任务,并将获取到的任务插入任务执行器队列131中,这一机制,减少了对数据存储装置的操作,减轻了数据存储装置中读取数据的压力,本地完成秒级调度任务,保证任务调度更高效。调度器110的另一功能就是从结果任务队列132中拉取任务的执行结果,并更新到数据存储装置140中。
执行器120负责任务的执行,从执行器队列131中获取任务,在获取任务时根据自身的可用线程和内存占用情况获取,获取到任务后调用相应的回调逻辑,并将处理结果推送到任务结果队列中。
调度系统中还设有协调服务器130,调度器110和执行器120通过向协调服务器注册才能加入调度系统中,同时,协调调度器130还负责创建管理任务执行器队列131和任务结果队列132。根据本发明的一个实施例,协调调度器130可以通过zookeeper实现,
调度系统中的各个调度器之间和各个执行器之间都是平行工作的,实现了去中心化,避免所有任务队列聚集一起,导致执行器拉取任务带来的性能问题,解决了由调度器集中调度的性能压力问题,各个执行器按需拉取处理,提高了系统的发能力及性能瓶颈问题。
上述任务调度系统中的调度器110、执行器120、协调服务器130和数据存储装置均可以由计算设备实现,图2示出了根据本发明一个实施例的计算设备200的框图。需要说明的是,图2所示的计算设备200仅为一个示例,在实践中,用于实施本发明的任务调度方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图2所示的计算设备200相同,也可以与图2所示的计算设备200不同。实践中用于实施本发明的数据处理方法的计算设备可以对图2所示的计算设备200的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情况不做限制。
如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器204读取。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上由一个或多个处理器204利用程序数据224执行指令。操作系统220例如可以是Linux、Windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用222包括用于实现各种用户期望的功能的程序指令,应用222例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用222被安装到计算设备200中时,可以向操作系统220添加驱动模块。
在计算设备200启动运行时,处理器204会从存储器206中读取操作系统220的程序指令并执行。应用222运行在操作系统220之上,利用操作系统220以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用222时,应用222会加载至存储器206中,处理器204从存储器206中读取并执行应用222的程序指令。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备142包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,应用222包括用于执行本发明的任务调度方法300的指令,该指令可以指示处理器204执行本发明的任务调度方法300。
图3示出了根据本发明一个实施例的任务调度方法300的流程图,方法300在计算设备中执行,完成任务的调度过程,并将调度结果记录到数据存储装置中。
在图3所示的步骤S310之前需要启动调度系统,在调度系统的启动过程中,调度器110通过获取调度器注册锁向协调服务器130进行注册,基于任务队列分配算法获得数据存储装置140中对应的任务队列,把当前调度器的IP地址、端口号、调度器名以及对应的任务队列注册到协调服务器上,并存储到数据存储装置中;同样,执行器120通过获取执行器注册锁向协调服务器130进行注册,将当前执行器的IP地址、端口号、执行器名注册到协调服务器中,并存储到数据存储装置中。根据本发明的一个实施例,调度器在获取对应的任务队列时采用平均分配的方式,数据存储装置通过环形卡槽(slot)实现,卡槽的个数为1024个,任务调度系统中有4个调度器,则每个调度器对应256个卡槽,该实施例仅是示例性的说明,本发明对数据存储装置的卡槽个数、调度器个数及分配方式不做限制。
根据本发明的又一个实施例,当有一台调度器发生故障时,卡槽重新分配,继续以上述实施例进行说明,当有一个调度器发生故障时,按照平均分配的方式,重新将1024个卡槽平均分配给剩下的非故障调度器,则第一个调度器对应其中的1-342个卡槽,第二个调度器对应第343-683个卡槽,第三个调度器对应第684-1024个卡槽。
如图3所示,方法300始于步骤S310,任务调度系统接收待处理的任务,每个任务中都携带了该任务的优先级信息、任务ID、执行器、执行handler、路由策略、超时时间、任务类型、执行器IP等信息,根据任务中的任务ID对数据存储装置中的任务队列的个数进行取模,将任务分配到相应的任务队列中。继续以数据存储装置中有1024个卡槽为例,则根据任务ID持久化到数据存储装置中的任务与slot的对应关系展开为表1所示。
表1
根据步骤S320调度器完成从数据存储装置中的拉取任务的过程,具体的拉取任务的过程是通过任务调度线程实现的,每隔一定的时间从其对应的任务队列中获取执行时间在一定时间内的任务,例如,当前调度器对应的任务队列为队列1-队列20,则拉取任务时,只拉取队列1-队列20中的任务,且只拉取执行时间在固定时间内的任务,比如,每10秒拉取执行时间在未来10秒内的任务,根据拉取到的任务的执行时间确定是否将任务插入时间轮容器,时间轮容器为存储任务的环形队列,根据本发明的一个实施例,时间轮上的每一个卡槽对应的时间跨度为1秒,整个时间轮的周期要比拉取的任务的执行时间跨度要大,继续以拉取10秒内的任务为例,时间轮的周期不能小于10秒,以保证拉取到的任务能够根据执行时间不同插入时间轮容器的合适的卡槽位置。
调度器通过步骤S330从时间轮容器中获取当前时刻的任务并插入任务执行器队列中,继续以上述示例进行说明,时间轮上的每个卡槽的时间跨度为1秒,则每隔一秒读取下一个卡槽中的任务,并根据任务对应的执行器将任务插入对应执行器的任务执行器队列131中,根据本发明的一个实施例,该步骤可以通过计时器实现。
步骤S330中实现执行器从任务执行器队列中获取任务进行处理并返回结果的过程。每个执行器可以部署多个实例,每台实例都会启动一个循环拉取任务的线程,并且生成一个固定工作线程数量执行任务线程池,该线程数量可配,执行器实例在拉取任务时根据剩余空闲线程数和内存按需拉取任务,执行器在处理任务时,根据任务的优先级顺序进行处理,首先处理优先级高的任务,将处理的结果加入到任务结果队列132中。
任务结果队列中的执行结果是通过步骤S350由调度器更新到数据存储装置中的,调度器实例在拉取任务结果时也是根据自身的空闲线程和内存按需拉取进行持久化的。
图4示出了根据本发明一个实施例的调度器拉取任务的流程图,也是上述步骤S320的细化说明。
调度器可以部署多个调度器实例,调度器实例拉取任务的过程始于步骤S410,各调度器实例之间通过抢占预拉取任务锁获取拉取任务的机会,如果预拉取任务锁抢占失败,继续等待抢占预拉取任务锁。
如果抢占成功,则进入步骤S420,拉取执行时间在预定时间内的任务,根据本发明的一个实施例A,拉取执行时间在30秒内的任务,当前时间为11:27:30,拉取到5个任务,任务1执行时间为11:26:50,任务2执行时间为11:26:55,任务3执行时间为11:27:15,任务4执行时间为11:27:25,任务5执行时间为11:27:40。
随后进入步骤S430,判断任务执行时间是否小于或等于当前时间减去第一预定时间的关系,继续以实例A进行说明,任务1和任务2的判断结果为真,则进入步骤S440,将该任务丢弃,忽略此次调度,等待下一次调度。
任务3、任务4、任务5在步骤S430中的判断结果为假,则进入步骤S450,判断任务执行时间是否小于或等于当前时间,本步骤中,任务5的判断结果为假,则直接进入步骤S490,将任务5加入时间轮容器。
任务3和任务4在S450的判断结果为假,则进入步骤S460,直接触发此次调度,分别根据任务3和任务4对应的执行器放入对应执行器的任务执行队列中。
随后进入步骤S470,计算任务3和任务4的下一次执行时间,根据本发明的一个实施例,任务3的下一次执行时间为11:27:45,任务4的下一次执行时间为11:30:00。
随后进入步骤S480,判断任务的下一次执行时间是否在预定时间内。
如果步骤S480的判断结果为真,进入步骤S485,在示例A中,任务3的下一次执行时间在预定时间30秒内,则将任务3加入时间轮容器以完成下一次调度,同时将任务3的下一次调度信息持久化到数据存储装置中,而任务4的下一次调度时间不在30秒内,不做处理。
图5示出了根据本发明一个实施例的执行器调度任务的流程图,是对上述图3中S340的进一步细化。
执行器可以部署多个实例,执行器实例在调度任务时会生成一个执行任务线程池,线程数是可以配置的,该过程始于步骤S510,执行器实例判断当前执行器实例的空闲线程和内存是否满足预设条件,根据本发明的一个实施例,当前执行器实例没有空闲的执行任务的线程,则需要等待一定时间进行下一次判断,具体等待时间可以配置,本发明对此不做限制。
根据本发明的又一实施例,当前执行器实例有空闲线程50个,内存剩余70%,满足执行条件,则进入步骤S520,执行器实例抢占拉取任务锁,如果抢占失败,继续等待获取拉取任务所。
如果抢占成功,则进入步骤S530,根据当前执行器实例的处理能力拉取任务,根据本发明的一个实施例,根据执行器实例的处理能力可以处理50个任务,则此次拉取50个任务,具体执行器的剩余处理能力对应的拉取任务的个数,本发明不做限制,被拉取到的任务需要从任务执行器队列中删除。
执行器在处理任务时,根据任务的优先级顺序进行处理,首先处理优先级高的任务,在一个具体示例中,任务A、任务B和任务C的执行时间为同一时刻,但是任务A的优先级为2、任务B的优先级为3、任务C的优先级为1(优先级从1到3逐渐降低),则任务处理的顺序为任务C、任务A、任务B。执行器实例处理完任务后会进步骤S540,将任务执行结果插入任务结果队列中,任务结果队列不对应执行器。
图6示出了根据本发明一个实施例的调度器持久化任务执行结果的流程图,该流程图是对图3中步骤S350的进一步细化。
调度器持久化任务执行结果的流程始于步骤S610,调度器实例检测自身的处理能力,包括可用线程数和内存占用情况,根据本发明的一个实施例,检测结果为不满足处理条件,则休眠一定时间等待下一次检测,本发明对具体的等待时间不做限制,根据一个具体示例,等待时间可以为1秒。
如果调度器实例的处理条件满足处理条件,则进入步骤S620,抢占拉取结果任务锁,如果抢占失败,则继续等待获取拉取结果锁。
如果抢占成功,则进入步骤S630,根据处理能力按需从任务结果队列中获取任务执行结果,例如,根据调度器实例的处理能力能拉取100个任务结果进行持久化,则此次拉取100个任务执行结果,并持久化到数据存储装置中。
根据本发明的任务调度方案,将任务数据库创建成包含预定数量的任务队列,接收到的待处理任务根据任务将任务分配到所有的任务队列中,确保每个任务队列上的任务量均差不大,而所有的任务队列又分散对应调度系统中的所有调度器,每个调度器对应固定的任务队列,在触发调度任务时只拉取对应的任务队列中的任务,所有调度器并行工作,避免所有任务都落在一个机器上,实现了去中心化,解决了目前框架的集群环境所有机器通过抢占DB锁,只能由抢占成功节点一台实例进行任务调度的缺点,同时,本发明通过获取预定时间内的消息插入时间轮容器,并定时读取时间轮,减轻了数据库操作的压力,并通过并行工作的多个执行器拉取任务,解决了由调度器集中调度的性能压力问题。
如果在调度系统运行中,某调度器故障,会重新分配任务队列到非故障调度器上,保证任务不会丢失,同时,任务执行时考虑了任务的优先级,保证优先级高的任务能够优先执行,进一步,执行器在执行任务时都是按需获取任务,提高了系统的处理能力。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的任务调度方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本发明还包括:
A6、如A5所述的方法,其中,所述处理条件包括:执行器实例的可用线程数和剩余内存。
A7、如A5所述的方法,其中,所述任务包含优先级,所述从任务执行器队列中获取任务进行处理还包括:
根据从任务执行器队列中获取到的任务的优先级进行处理。
A8、如A1-A7中任意一项所述的方法,其中,所述调度器获取任务结果队列中的任务执行结果,并存储到数据存储装置中包括:
调度器实例检测自身的处理能力是否满足处理条件;
若满足处理条件,调度器实例抢占拉取结果任务锁,若抢占成功,则根据所述自身的处理能力从任务结果队列中获取任务执行结果,并将所述任务执行结果存储到数据存储装置中。
A9、如A1-A8中任意一项所述的方法,其中,所述环形时间轮容器的时间跨度大于第一预定时间。
A10、如A1-A9中任意一项所述的方法,其中,所述协调服务器为zookeeper。
B14、如B13所述的任务调度系统,其中,所述调度器还适于,
若任务的执行时间在当前时间减去第一预定时间与当前时间之间,计算该任务的下一次执行时间;
若该任务的下一次执行时间在当前时间加上第一预定时间内,则将该任务添加到时间轮容器;
并将该任务的下一次执行时间持久化到数据存储装置中。
B15、如B11-B14中任意一项所述的任务调度系统,其中,所述执行器还适于在从任务执行器队列中获取任务进行处理时:
执行器实例检测自身的处理能力是否满足处理条件;
若满足处理条件,执行器实例抢占执行器拉取任务锁,若抢占成功,则根据所述自身的处理能力从任务执行器队列中获取任务进行处理;
若不满足处理条件,则休眠等待第三预定时间,进行下一次检测。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种任务调度方法,所述任务调度方法适于在任务调度系统中执行,所述任务调度系统包括多个调度器,多个执行器,协调服务器和数据存储装置,所述数据存储装置包括预定数量个任务队列,其中,所述方法包括,
接收待处理的任务,所述任务包含执行器、执行时间、任务标识,根据任务标识将任务与执行器关联的存储到任务队列中;
所述调度器每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器;
所述调度器每隔第二预定时间获取所述时间轮容器中当前时刻的任务,并将获取的任务插入该任务关联的执行器的任务执行器队列中,所述任务执行器队列由协调服务器创建;
所述执行器从任务执行器队列中获取任务进行处理,并将任务执行结果加入任务结果队列中,所述任务结果队列由协调服务器创建;
所述调度器获取任务结果队列中的任务执行结果,并存储到数据存储装置中。
2.如权利要求1所述的方法,其中,所述方法还包括:
当有调度器发生故障时,所述数据存储装置中的预定数量个任务队列重新分配到剩余的非故障调度器上。
3.如权利要求1或2所述的方法,其中,所述调度器包括多个调度器实例,所述调度器每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器包括:
调度器实例抢占预拉取任务锁;
若抢占到预拉取任务锁,该调度器实例获取该调度器对应的任务队列中的任务;
若任务的执行时间小于或等于当前时间减去第一预定时间,则丢弃;
若任务的执行时间在当前时间减去第一预定时间与当前时间之间,则将该任务插入该任务对应的执行器的任务执行队列中;
若任务的执行时间在当前时间与当前时间加上第一预定时间之间,则将该任务插入时间轮容器。
4.如权利要求3所述的方法,其中,所述若任务的执行时间在当前时间减去第一预定时间与当前时间之间,则将该任务插入该任务对应的执行器的任务执行队列中还包括:
计算该任务的下一次执行时间,若该任务的下一次执行时间在当前时间加上第一预定时间内,则将该任务添加到时间轮容器;
并将该任务的下一次执行时间持久化到数据存储装置中。
5.如权利要求1-4中任意一项所述的方法,其中,所述执行器包括多个执行器实例,所述执行器从任务执行器队列中获取任务进行处理包括:
执行器实例检测自身的处理能力是否满足处理条件;
若满足处理条件,执行器实例抢占执行器拉取任务锁,若抢占成功,则根据所述自身的处理能力从任务执行器队列中获取任务进行处理;
若不满足处理条件,则休眠等待第三预定时间,进行下一次检测。
6.一种任务调度系统,包括多个调度器、多个执行器、协调服务器和数据存储装置,其中,
所述数据存储装置,包括预定数量个任务队列,所有任务队列分配到所有调度器,所述数据存储装置适于存储接收到的待处理的任务和任务执行结果,其中,所述任务包含的参数有执行器、执行时间、任务标识,所述数据存储装置在存储任务时根据任务标识将任务与执行器关联的存储到任务队列中;
所述调度器,适于每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器,每隔第二预定时间获取所述时间轮容器中当前时刻的任务,并将任务插入该任务关联的执行器的任务执行器队列中,获取任务结果队列中的任务执行结果,并存储到数据存储装置中;
所述执行器,适于从任务执行器队列中获取任务进行处理,并将任务执行结果发送到任务结果队列中;
所述协调服务器,适于创建任务执行器队列、任务结果队列。
7.如权利要求6所述的任务调度系统,其中,所述数据存储装置还适于在所有任务队列分配到所有调度器时:
当有调度器发生故障时,所述数据存储装置中的预定数量个任务队列重新分配到剩余的非故障调度器上。
8.如权利要求6或7所述的任务调度系统,其中,所述调度器包括多个调度器实例,所述调度器还适于在每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器时:
调度器实例抢占预拉取任务锁;
若抢占到预拉取任务锁,该调度器实例获取该调度器对应的任务队列中的任务;
若任务的执行时间小于当前时间减去第一预定时间,则丢弃;
若任务的执行时间在当前时间减去第一预定时间与当前时间之间,则将该任务插入该任务对应的执行器的任务执行队列中;
若任务的执行时间在当前时间与当前时间加上第一预定时间之间,则将该任务插入时间轮容器。
9.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-8中任一项所述方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-8中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010659344.9A CN111949386A (zh) | 2020-07-09 | 2020-07-09 | 一种任务调度方法、系统、计算装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010659344.9A CN111949386A (zh) | 2020-07-09 | 2020-07-09 | 一种任务调度方法、系统、计算装置及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111949386A true CN111949386A (zh) | 2020-11-17 |
Family
ID=73340096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010659344.9A Pending CN111949386A (zh) | 2020-07-09 | 2020-07-09 | 一种任务调度方法、系统、计算装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949386A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559143A (zh) * | 2020-12-04 | 2021-03-26 | 海南车智易通信息技术有限公司 | 任务调度方法、系统及计算设备 |
CN112596885A (zh) * | 2020-12-25 | 2021-04-02 | 网易(杭州)网络有限公司 | 任务调度方法、装置、设备及存储介质 |
CN112749927A (zh) * | 2021-02-03 | 2021-05-04 | 香港中文大学(深圳) | 一种仓储机器人的调度方法及相关设备 |
CN112764912A (zh) * | 2021-02-27 | 2021-05-07 | 中电万维信息技术有限责任公司 | 一种用于数据集成的轻量级分布式调度方法及系统 |
CN113051051A (zh) * | 2021-03-12 | 2021-06-29 | 北京百度网讯科技有限公司 | 视频设备的调度方法、装置、设备及存储介质 |
CN113051059A (zh) * | 2021-04-10 | 2021-06-29 | 作业帮教育科技(北京)有限公司 | 一种多gpu的任务实时调度方法及装置 |
CN113365084A (zh) * | 2021-05-12 | 2021-09-07 | 烽火通信科技股份有限公司 | 一种利用时间轮控制发送速度的方法及装置 |
CN113778689A (zh) * | 2021-09-22 | 2021-12-10 | 重庆允成互联网科技有限公司 | 一种分布式定时任务运行方法、系统、设备及存储介质 |
CN114020430A (zh) * | 2021-11-04 | 2022-02-08 | 上海合阔信息技术有限公司 | 一种分布式任务调度方法、装置、电子设备及存储介质 |
CN114489867A (zh) * | 2022-04-19 | 2022-05-13 | 浙江大华技术股份有限公司 | 算法模块调度方法、算法模块调度装置以及可读存储介质 |
CN114625098A (zh) * | 2020-12-10 | 2022-06-14 | 中国科学院沈阳自动化研究所 | 一种水下机器人抢占式故障处理方法 |
CN116647530A (zh) * | 2023-06-06 | 2023-08-25 | 深圳花儿绽放网络科技股份有限公司 | 一种即时通信消息任务的自动执行系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140223436A1 (en) * | 2013-02-04 | 2014-08-07 | Avaya Inc. | Method, apparatus, and system for providing and using a scheduling delta queue |
CN104657214A (zh) * | 2015-03-13 | 2015-05-27 | 华存数据信息技术有限公司 | 一种基于多队列和多优先级的大数据任务管理系统和方法 |
WO2018072687A1 (zh) * | 2016-10-19 | 2018-04-26 | 华为技术有限公司 | 一种资源调度的方法、装置和过滤式调度器 |
CN111274013A (zh) * | 2020-01-16 | 2020-06-12 | 北京思特奇信息技术股份有限公司 | 容器内基于内存数据库的定时任务调度的优化方法及系统 |
-
2020
- 2020-07-09 CN CN202010659344.9A patent/CN111949386A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140223436A1 (en) * | 2013-02-04 | 2014-08-07 | Avaya Inc. | Method, apparatus, and system for providing and using a scheduling delta queue |
CN104657214A (zh) * | 2015-03-13 | 2015-05-27 | 华存数据信息技术有限公司 | 一种基于多队列和多优先级的大数据任务管理系统和方法 |
WO2018072687A1 (zh) * | 2016-10-19 | 2018-04-26 | 华为技术有限公司 | 一种资源调度的方法、装置和过滤式调度器 |
CN111274013A (zh) * | 2020-01-16 | 2020-06-12 | 北京思特奇信息技术股份有限公司 | 容器内基于内存数据库的定时任务调度的优化方法及系统 |
Non-Patent Citations (1)
Title |
---|
邓海川;方旭升;: "日志分析系统的任务调度体系结构研究", 科技信息, no. 05, 15 February 2013 (2013-02-15) * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559143A (zh) * | 2020-12-04 | 2021-03-26 | 海南车智易通信息技术有限公司 | 任务调度方法、系统及计算设备 |
CN114625098A (zh) * | 2020-12-10 | 2022-06-14 | 中国科学院沈阳自动化研究所 | 一种水下机器人抢占式故障处理方法 |
CN114625098B (zh) * | 2020-12-10 | 2023-10-20 | 中国科学院沈阳自动化研究所 | 一种水下机器人抢占式故障处理方法 |
CN112596885A (zh) * | 2020-12-25 | 2021-04-02 | 网易(杭州)网络有限公司 | 任务调度方法、装置、设备及存储介质 |
CN112749927A (zh) * | 2021-02-03 | 2021-05-04 | 香港中文大学(深圳) | 一种仓储机器人的调度方法及相关设备 |
CN112749927B (zh) * | 2021-02-03 | 2023-11-28 | 香港中文大学(深圳) | 一种仓储机器人的调度方法及相关设备 |
CN112764912A (zh) * | 2021-02-27 | 2021-05-07 | 中电万维信息技术有限责任公司 | 一种用于数据集成的轻量级分布式调度方法及系统 |
CN112764912B (zh) * | 2021-02-27 | 2022-09-30 | 中电万维信息技术有限责任公司 | 一种用于数据集成的轻量级分布式调度方法及系统 |
CN113051051B (zh) * | 2021-03-12 | 2024-02-27 | 北京百度网讯科技有限公司 | 视频设备的调度方法、装置、设备及存储介质 |
CN113051051A (zh) * | 2021-03-12 | 2021-06-29 | 北京百度网讯科技有限公司 | 视频设备的调度方法、装置、设备及存储介质 |
CN113051059A (zh) * | 2021-04-10 | 2021-06-29 | 作业帮教育科技(北京)有限公司 | 一种多gpu的任务实时调度方法及装置 |
CN113051059B (zh) * | 2021-04-10 | 2022-10-14 | 作业帮教育科技(北京)有限公司 | 一种多gpu的任务实时调度方法及装置 |
CN113365084B (zh) * | 2021-05-12 | 2022-06-10 | 烽火通信科技股份有限公司 | 一种利用时间轮控制发送速度的方法及装置 |
CN113365084A (zh) * | 2021-05-12 | 2021-09-07 | 烽火通信科技股份有限公司 | 一种利用时间轮控制发送速度的方法及装置 |
CN113778689A (zh) * | 2021-09-22 | 2021-12-10 | 重庆允成互联网科技有限公司 | 一种分布式定时任务运行方法、系统、设备及存储介质 |
CN114020430A (zh) * | 2021-11-04 | 2022-02-08 | 上海合阔信息技术有限公司 | 一种分布式任务调度方法、装置、电子设备及存储介质 |
CN114489867B (zh) * | 2022-04-19 | 2022-09-06 | 浙江大华技术股份有限公司 | 算法模块调度方法、算法模块调度装置以及可读存储介质 |
CN114489867A (zh) * | 2022-04-19 | 2022-05-13 | 浙江大华技术股份有限公司 | 算法模块调度方法、算法模块调度装置以及可读存储介质 |
CN116647530A (zh) * | 2023-06-06 | 2023-08-25 | 深圳花儿绽放网络科技股份有限公司 | 一种即时通信消息任务的自动执行系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949386A (zh) | 一种任务调度方法、系统、计算装置及可读存储介质 | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
WO2020181813A1 (zh) | 一种基于数据处理的任务调度方法及相关设备 | |
US9319281B2 (en) | Resource management method, resource management device, and program product | |
US9577961B2 (en) | Input/output management in a distributed strict queue | |
JP5756801B2 (ja) | 電気通信ネットワークにおけるイベントを処理するための装置および方法 | |
US20090276781A1 (en) | System and method for multi-level preemption scheduling in high performance processing | |
US9584593B2 (en) | Failure management in a distributed strict queue | |
US9843528B2 (en) | Client selection in a distributed strict queue | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
US20150381514A1 (en) | Multi-tiered processing using a distributed strict queue | |
US9575820B2 (en) | Client control in a distributed strict queue | |
US10013288B2 (en) | Data staging management system | |
CN111274019A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN113132456B (zh) | 一种基于截止时间感知的边云协同任务调度方法及系统 | |
CN114168302A (zh) | 任务调度方法、装置、设备及存储介质 | |
WO2015131542A1 (zh) | 数据处理方法、装置和系统 | |
CN114579285B (zh) | 一种任务运行系统、方法及计算设备 | |
US9577878B2 (en) | Geographic awareness in a distributed strict queue | |
US9894143B1 (en) | Pre-processing and processing pipeline for queue client | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN116820697A (zh) | 定时任务调度方法、装置、设备和存储介质 | |
CN113626173A (zh) | 调度方法、装置及存储介质 | |
CN111767125B (zh) | 任务执行方法、装置、电子设备、存储介质 | |
CN107783843B (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 |