CN103207807A - 任务调度方法和装置 - Google Patents

任务调度方法和装置 Download PDF

Info

Publication number
CN103207807A
CN103207807A CN2012100094781A CN201210009478A CN103207807A CN 103207807 A CN103207807 A CN 103207807A CN 2012100094781 A CN2012100094781 A CN 2012100094781A CN 201210009478 A CN201210009478 A CN 201210009478A CN 103207807 A CN103207807 A CN 103207807A
Authority
CN
China
Prior art keywords
task
scheduling
dispatching cycle
period
time
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.)
Granted
Application number
CN2012100094781A
Other languages
English (en)
Other versions
CN103207807B (zh
Inventor
周宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Tmall Technology Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201210009478.1A priority Critical patent/CN103207807B/zh
Publication of CN103207807A publication Critical patent/CN103207807A/zh
Application granted granted Critical
Publication of CN103207807B publication Critical patent/CN103207807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种任务调度方法和装置,该方法包括获取待调度任务的调度周期和待调度任务的调度起始时间;根据调度周期和调度起始时间生成与待调度任务对应的等待时间,其中,具有相同调度周期和相同调度起始时间的不同待调度任务对应不同的等待时间;在调度周期到达时延迟等待时间对待调度任务进行调度。本申请解决了在大量任务集中在一个时间点上进行调度而造成的调度服务器的调度压力分配不均的问题,使得任务相对均匀地分配在不同时间点进行调度,提高了调度服务器处理任务的效率,减少了资源的浪费。

Description

任务调度方法和装置
技术领域
本申请涉及互联网领域,具体而言,涉及一种任务调度方法和装置。
背景技术
目前,在计算机系统中对任务的执行都是采用,在某个具体的时间点上由调度服务器进行触发调度以实现对任务的调度。然而,该时间点往往是采用时间表达式来体现的,这些时间表达式可以表示某个具体的时间点,甚至可以精确到秒级对任务进行触发调度。因此,这种触发方式可以很好的实现在特定的某个时间点对任务进行触发调度。
例如,quartz就是一种任务触发调度集合,它主要是形成一种基本形式如“秒 分 时 日 月周 年”的时间表达式。例如,对于每间隔1分钟执行一次的任务,可以表示为:“* */1 * * * ?”;在每一分钟的第0秒对任务进行触发调度,可以表示为:“0 */1 * * *?”。这种时间表示方法一般是精确到具体的某一秒对任务进行触发调度。采用类似quartz表达式对任务进行触发调度的具体步骤如图1所示,包括:
S102:确定任务的调度周期,所谓任务调度的周期就是从一次调度到下一次调度之间间隔的时间。例如,每间隔5秒调度一次,每间隔5分钟调度一次,每间隔一小时调度一次,这就表示任务的调度周期分别是:5秒,5分钟,一小时。
S104:确定任务需要调度的时间段,例如,调度的时间段是每周一到每周五的上午9点到下午6点,就表示只在周一到周五的上午9点到下午6点这个时间范围内才对该任务进行调度,在此时间段以外的时间不对该任务进行调度。
S106:根据确定的调度周期和调度时间段信息生成quartz的触发调度表达式。
S108:调度服务器对quartz表达式进行解析,当时间点满足表达式中的时间点时,对该任务进行调度。
然而,现有技术中,基于表达式来处理周期性任务的方法,基本都是单独以一种表达式来表示任务需要触发调度的时间。因为任务的执行都是在某个具体的时间点上由调度器触发调度,在计算机中,一般精确到具体的某一秒,这样会产生一定的问题,例如,对于具有相同调度周期的任务而言,每隔一定的周期在相同的时间点上对这些任务进行调度,这样,在每个调度周期的某个时间点上会造成调度服务器调度的压力过大,而调度服务器在其他时间点上可能没有需要调度的任务,从而处于空闲状态,导致调度服务器的调度压力分配不匀,造成系统资源的浪费,进一步的当许多具有相同调度周期的任务集中在一个时间点进行调度的时候,也会影响调度服务器在这个时间点上的处理性能,增加调度失败率,从而影响系统的处理效率和资源的使用效率。
针对上述问题,目前还没有提出有效的解决办法。
发明内容
本申请的主要目的在于提供一种任务调度方法和装置,以至少解决现有技术中多个具有相同调度周期的任务在同一时间点进行调度而造成的调度服务器的调度压力分配不均的问题。
根据本申请的一个方面,提供了一种任务调度方法,包括:获取待调度任务的调度周期和待调度任务的调度起始时间;根据调度周期和调度起始时间生成与待调度任务对应的等待时间,其中,具有相同调度周期和相同调度起始时间的不同待调度任务对应不同的等待时间;在调度周期到达时延迟等待时间对待调度任务进行调度。
优选地,根据调度周期和调度起始时间生成与待调度任务对应的等待时间的步骤包括:在范围[0,调度周期)之间随机选取N个数值,其中,N为具有相同调度周期和调度起始时间的不同待调度任务的个数;将所选取的N个数值作为等待时间分别分配给具有相同调度周期和调度起始时间的N个不同待调度任务。
优选地,通过如下公式在范围[0,调度周期)之间随机选取N个数值中的每一个数值:
start=random(0,interval/f)*f
其中,start表示等待时间,random(a,b)表示区间[a,b)中的一个随机值,interval表示调度周期,f为1至调度周期之间的一个整数。
优选地,根据调度周期和调度起始时间生成与待调度任务对应的等待时间之后,任务调度方法还包括:采用以下方式记录与待调度任务对应的调度信息:[(start,interval),quartz],其中,start表示等待时间,interval表示调度周期,quartz表示待调度任务的调度时间段。
优选地,在调度周期到达时延迟等待时间对待调度任务进行调度的步骤包括:获取调度时间段包括当前时间的调度信息;判断所获取的调度信息对应的调度周期是否到达;在判断的调度周期到达时延迟等待时间对与获取的调度信息对应的待调度任务进行调度。
根据本申请的另一方面,提供了一种任务调度装置,包括:获取单元,用于获取待调度任务的调度周期和待调度任务的调度起始时间;生成单元,用于根据调度周期和调度起始时间生成与待调度任务对应的等待时间,其中,具有相同调度周期和相同调度起始时间的不同待调度任务对应不同的等待时间;调度单元,用于在调度周期到达时延迟等待时间对待调度任务进行调度。
优选地,生成单元包括:选取模块,用于在范围[0,调度周期)之间随机选取N个数值,其中,N为具有相同调度周期和调度起始时间的不同待调度任务的个数;分配模块,用于将所选取的N个数值作为等待时间分别分配给具有相同调度周期和调度起始时间的N个不同待调度任务。
优选地,选取模块包括:选取子模块,用于通过如下公式在范围[0,调度周期)之间随机选取N个数值中的每一个数值:start=random(0,interval/f)*f
其中,start表示等待时间,random(a,b)表示区间[a,b)中的一个随机值,interval表示调度周期,f为1至调度周期之间的一个整数。
优选地,任务调度装置还包括:记录单元,用于在生成与待调度任务对应的等待时间之后,采用以下方式记录与待调度任务对应的调度信息:[(start,interval),quartz],其中,start表示等待时间,interval表示调度周期,quartz表示待调度任务的调度时间段。
优选地,调度单元包括:获取模块,用于获取调度时间段包括当前时间的调度信息;判断模块,用于判断所获取的调度信息对应的调度周期是否到达;调度模块,用于在判断的调度周期到达时延迟等待时间对与获取的调度信息对应的待调度任务进行调度。
在本申请中,对具有相同调度周期的任务分配不同的等待时间,在调度周期到来的时候,延迟对应的等待时间在对该任务进行调度,从而解决了在大量任务集中在一个时间点上进行调度而造成的调度服务器的调度压力分配不均的问题,使得任务相对均匀地分配在不同时间点进行调度,提高了调度服务器处理任务的效率,减少了资源的浪费。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据相关技术的任务调度方法的流程图;
图2是根据本申请实施例的任务调度系统的一种优选结构框图;
图3是根据本申请实施例的任务调度装置的一种优选结构框图;
图4是根据本申请实施例的任务调度装置的生成单元的一种优选结构框图;
图5是根据本申请实施例的任务调度装置的另一种优选结构框图;
图6是根据本申请实施例的任务调度装置的调度单元的一种优选结构框图;
图7是根据本申请实施例的任务调度方法的一种优选流程图;
图8是根据本申请实施例的任务调度方法的另一种优选流程图;
图9是根据本申请实施例的任务调度方法的又一种优选流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在描述本申请的各实施例的进一步细节之前,将参考图1来描述可用于实现本申请的原理的一个合适的计算体系结构。在以下描述中,除非另外指明,否则将参考由一个或多个计算机执行的动作和操作的符号表示来描述本申请的各实施例。由此,可以理解,有时被称为计算机执行的这类动作和操作包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,这以本领域的技术人员都理解的方式重配置或改变了计算机的操作。维护数据的数据结构是具有数据的格式所定义的特定属性的存储器的物理位置。然而,尽管在上述上下文中描述本申请,但它并不意味着限制性的,如本领域的技术人员所理解的,后文所描述的动作和操作的各方面也可用硬件来实现。
转向附图,其中相同的参考标号指代相同的元素,本申请的原理被示为在一个合适的计算环境中实现。以下描述基于所述的本申请的实施例,并且不应认为是关于此处未明确描述的替换实施例而限制本申请。
图2示出了可用于这些设备的一个示例计算机体系结构的示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。也不应将该计算系统解释为对图2所示的任一组件或其组合具有任何依赖或需求。
本申请的原理可以使用其它通用或专用计算或通信环境或配置来操作。适用于本申请的众所周知的计算系统、环境和配置的示例包括但不限于,个人计算机、服务器,多处理器系统、基于微处理的系统、小型机、大型计算机、以及包括任一上述系统或设备的分布式计算环境。
在其最基本的配置中,图2中的任务调度系统200至少包括:一个网站的服务器202以及一个或多个客户端204。服务器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置、用于存储数据的存储装置以及与客户端通信的传输装置;客户端204可以包括:微处理器MCU、与服务器通信的传输装置、与用户交互的显示装置。在本说明书和权利要求书中,“任务调度系统”也可以被定义为能够执行软件、固件或微码来实现功能的任何硬件组件或硬件组件的组合。任务调度系统200甚至可以是分布式的,以实现分布式功能。
如本申请所使用的,术语“模块”、“组件”或“单元”可以指在任务调度系统200上执行的软件对象或例程。此处所描述的不同组件、模块、单元、引擎和服务可被实现为在任务调度系统200上执行(例如,作为单独的线程)的对象或进程。尽管此处所描述的系统和方法较佳地以软件来实现,但是硬件或软件和硬件的组合的实现也是可能并被构想的。
实施例1
图3是根据本申请实施例任务调度装置的一种优选的结构示意图,优选的,本实施例中的任务调度装置位于服务器202上或者客户端204上。
优选的,任务调度装置可以如图3所示,包括:获取单元302,用于获取待调度任务的调度周期和待调度任务的调度起始时间;生成单元304,用于根据调度周期和调度起始时间生成与待调度任务对应的等待时间,其中,具有相同调度周期和相同调度起始时间的不同待调度任务对应不同的等待时间;调度单元306,用于在调度周期到达时延迟等待时间对待调度任务进行调度。
在上述优选实施方式中,对调度周期相同的任务分配不同的等待时间,在调度周期到来的时候,延迟对应的等待时间再对该任务进行调度,从而避免了在大量任务集中在一个时间点上进行调度而造成的调度服务器的调度压力分配不均的问题,使得任务相对均匀地分配在不同时间点进行调度,提高了调度服务器处理任务的效率,减少了资源的浪费。
举例而言,对于调度周期都为100s的3个任务:任务1、任务2以及任务3都在同一时间进行调度,调度服务器在每次调度周期到来的时间点调度压力会很大,通过本申请的方法,可以为任务1分配10s的等待时间、为任务2分配30s的等待时间、为任务3分配50s的等待时间,从而使得三个任务错开调度,均衡了调度服务器的调度压力。
在本申请一个优选实施方式中,如图4所示,生成单元304包括:选取模块402,用于在范围[0,调度周期)之间随机选取N个数值,其中,N为具有相同调度周期和调度起始时间的不同待调度任务的个数;分配模块404,用于将所选取的N个数值作为等待时间分别分配给具有相同调度周期和调度起始时间的N个不同待调度任务。其中,如果任务每隔5秒,每隔5分钟或者每隔1小时调度一次,则对应的调度周期(interval)就是5秒、300秒、3600秒。在上述优选实施方式中,在[0,调度周期)中确定数值分配给任务作为调度等待时间,因为当一个周期性任务开始调度后,每隔一定的间隔,任务会再次触发调度。为了尽量保证任务处理的时效性,等待时间应该是一个小于调度周期的值,从而不会出现一个周期任务在先一次的调度还没执行完,在后一次的调度已经开始执行的情况,从而保证了任务准确的执行。
在本申请一个优选实施方式中,选取模块402通过如下公式:
start=random(0,interval/f)*f
在范围[0,调度周期)之间随机选取N个数值中的每一个数值。
其中,start表示等待时间,random(a,b)表示区间[a,b)中的一个随机值,interval表示调度周期,f为1至调度周期之间的一个整数。
优选的,任务的权值f可以依据任务执行的耗时来确定,耗时越长相应的对应越大的f。不同的任务可能消耗的调度时间不一样,例如,有些任务执行1秒就结束,有些任务可能执行要3秒,所以可以给每个任务都设定一个权值f。周期性任务执行的前提首先要保证每次任务执行消耗的时间小于任务执行的间隔,这一点可以通过设置任务的超时时间来保证,而在使用本申请表示方法前,假设所有任务已经得到保证。在本优选实施例的一个优选实施方式中,任务的权值代表每个任务的执行所消耗的时间(优选的,单位为秒),f是1至interval之间的一个整数,对于未进行权值设置的任务,权值默认为1秒,表示任务在1秒或者1秒内可以执行完成。
举例而言,可以将权值f看作单位为秒的任务耗时,假定现在有任务A和B,调度周期都是30秒。
假设任务A自身执行需要耗时1秒,令该任务对应的权值f为1,采用公式start=random(0,30/1)*1得到任务A的等待时间最多为29秒;
假设任务B自身执行需要耗时3秒,令该任务对应的权值f为3,采用公式start=random(0,30/3)*3得到任务B的等待时间最多为27秒。从而使得耗时越长的任务在相对较早的时间被调度。
在上述优选实施方式中,采用random函数生成随机数,同时为任务设置权值f,优选的,可以根据执行任务所需要的时间来确定权值的大小,耗时越长权值越大,从而可以保证耗时的任务相对来说先被调度,减少了因为调度延迟而造成的影响。
基于图3所示的优选的任务调度装置,在本申请一个优选实施方式中,如图5所示,任务调度装置还包括:记录单元502,用于在生成与待调度任务对应的等待时间之后,采用以下方式记录与待调度任务对应的调度信息:[(start,interval),quartz],其中,start表示等待时间,interval表示调度周期,quartz表示待调度任务的调度时间段。例如,[(20,60),*****?],表示一个调度周期为60秒的任务,在调度服务器开始工作后,在调度周期到来时,会推迟20秒再对该任务进行调度,对于不同的任务会选择不同的start值,从而可以保证任务不会集中在一个时间点上进行调度。
在上述优选实施方式中,采用[(start,interval),quartz]格式作为任务调度表达式,从而使得任务调度服务器可以通过该表达式明确知道在什么时间段对该任务进行调度、多长时间对该任务进行一次调度以及每次调度时延迟等待的时间。同时,采用quartz表达式进行调度,可以将调度时间点精确到秒。
在本申请一个优选实施方式中,如图6所示,调度单元306包括:获取模块602,用于获取调度时间段包括当前时间的调度信息;判断模块604,用于判断所获取的调度信息对应的调度周期是否到达;调度模块606,用于在判断的调度周期到达时延迟等待时间对与获取的调度信息对应的待调度任务进行调度。
在上述优选实施方式中,先获取任务调度信息,当对应于任务调度信息的调度周期到达的时候,延迟调度信息中的等待时间对任务进行调度,从而使得任务相对均匀地分配在不同时间点进行调度,提高了调度服务器处理任务的效率,减少了资源的浪费。
实施例2
在图2-图6所示的任务调度装置和系统的基础上,本申请提供了一种优选的任务调度方法。如图7所示,该任务调度方法可以包括如下步骤:
S702:获取待调度任务的调度周期和待调度任务的调度起始时间;
S704:根据调度周期和调度起始时间生成与待调度任务对应的等待时间,其中,具有相同调度周期和相同调度起始时间的不同待调度任务对应不同的等待时间;
S706:在调度周期到达时延迟等待时间对待调度任务进行调度。
在上述优选实施方式中,对调度周期相同的任务分配不同的等待时间,在调度周期到来的时候,延迟对应的等待时间再对该任务进行调度,从而避免了在大量任务集中在一个时间点上进行调度而造成的调度服务器的调度压力分配不均的问题,使得任务相对均匀地分配在不同时间点进行调度,提高了调度服务器处理任务的效率,减少了资源的浪费。
举例而言,对于调度周期都为100s的3个任务:任务1、任务2以及任务3都在同一时间进行调度,调度服务器在每次调度周期到来的时间点调度压力会很大,通过本申请的方法,可以为任务1分配10s的等待时间、为任务2分配30s的等待时间、为任务3分配50s的等待时间,从而使得三个任务错开调度,均衡了调度服务器的调度压力。
在本申请一个优选实施方式中,根据调度周期和调度起始时间生成与待调度任务对应的等待时间的步骤包括:在范围[0,调度周期)之间随机N个数值,其中,N为具有相同调度周期和调度起始时间的不同待调度任务的个数;将所选取的N个数值作为等待时间分别分配给具有相同调度周期和调度起始时间的N个不同待调度任务。其中,如果任务每隔5秒,每隔5分钟或者每隔1小时调度一次,则对应的调度周期(interval)就是5秒、300秒、3600秒。在上述优选实施方式中,在[0,调度周期)中确定数值分配给任务作为调度等待时间,因为当一个周期性任务开始调度后,每隔一定的间隔,任务会再次触发调度。为了尽量保证任务处理的时效性,等待时间应该是一个小于调度周期的值,从而不会出现一个周期任务在先一次的调度还没执行完,在后一次的调度已经开始执行的情况,从而保证了任务准确的执行。
在本申请一个优选实施方式中,可以通过如下公式在范围[0,调度周期)之间随机选取N个数值中的每一个数值:
start=random(0,interval/f)*f
其中,start表示等待时间,random(a,b)表示区间[a,b)中的一个随机值,interval表示调度周期,f为1至调度周期之间的一个整数。
优选的,任务的权值f可以依据任务执行的耗时来确定,耗时越长相应的对应越大的f。不同的任务可能消耗的调度时间不一样,例如,有些任务执行1秒就结束,有些任务可能执行要3秒,所以可以给每个任务都设定一个权值f。周期性任务执行的前提首先要保证每次任务执行消耗的时间小于任务执行的间隔,而在使用本申请表示方法前,假设所有任务已经得到保证。在本优选实施例的一个优选实施方式中,任务的权值代表每个任务的执行所消耗的时间(优选的,单位为秒),f是1至interval之间的一个整数,对于未进行权值设置的任务,权值默认为1秒,表示任务在1秒或者1秒内可以执行完成。
举例而言,可以将权值f看作单位为秒的任务耗时,假定现在有任务A和B,调度周期都是30秒。
假设任务A自身执行需要耗时1秒,令该任务对应的权值f为1,采用公式start=random(0,30/1)*1得到任务A的等待时间最多为29秒;
假设任务B自身执行需要耗时3秒,令该任务对应的权值f为3,采用公式start=random(0,30/3)*3得到任务B的等待时间最多为27秒。从而使得耗时越长的任务在相对较早的时间被调度。
在上述优选实施方式中,采用random函数生成随机数,同时为任务设置权值f,优选的,可以根据执行任务所需要的时间来确定权值的大小,耗时越长权值越大,从而可以保证耗时的任务相对来说先被调度,减少了因为调度延迟而造成的影响。
在本申请一个优选实施方式中,根据调度周期和调度起始时间生成与待调度任务对应的等待时间之后,任务调度方法还包括:采用以下方式记录与待调度任务对应的调度信息:
[(start,interval),quartz]
其中,start表示等待时间,interval表示调度周期,quartz表示待调度任务的调度时间段。例如,[(20,60),*****?],表示一个调度周期为60秒的任务,在调度服务器开始工作后,在调度周期到来时,会推迟20秒再对该任务进行调度,对于不同的任务会选择不同的start值,从而可以保证任务不会集中在一个时间点上进行调度。
在上述优选实施方式中,采用[(start,interval),quartz]格式作为任务调度表达式,从而使得任务调度服务器可以通过该表达式明确知道在什么时间段对该任务进行调度、多长时间对该任务进行一次调度以及每次调度时延迟等待的时间。同时,采用quartz表达式进行调度,可以将调度时间点精确到秒。
在本申请一个优选实施方式中,在调度周期到达时延迟等待时间对待调度任务进行调度的步骤可以如图8所示,包括:
S802:获取调度时间段包括当前时间的调度信息;
S804:判断所获取的调度信息对应的调度周期是否到达;
S806:在判断的调度周期到达时延迟等待时间对与获取的调度信息对应的待调度任务进行调度。
在上述优选实施方式中,先获取任务调度信息,当对应于任务调度信息的调度周期到达的时候,延迟调度信息中的等待时间对任务进行调度,从而使得任务相对均匀地分配在不同时间点进行调度,提高了调度服务器处理任务的效率,减少了资源的浪费。
实施例3
本申请提供了一种优选的实施例来进一步对本申请进行解释,但是值得注意的是,该优选实施例只是为了更好的描述本申请,并不构成对本申请不当的限定。
基于上述的优选实施方式,本申请提供了一种具体的实施方式,如图9所示,步骤包括:
S902:确定任务的调度周期interval,如有4个每隔5分钟需要调度一次的任务,分别定义为:任务1、任务2、任务3、任务4,对应的interval都是300秒。
S904:确定任务的权值f,优选的,f可以默认为1。
S906:确定任务需要进行调度的时间段quartz,例如:每天上午9点到下午6点,每周一到每周五等。
S908:采用一定的算法计算出等待时间start。
例如,可以采用如下公式计算出等待时间start:
start=random(0,interval/f)*f,
假设,在本实施例中,根据上述公式计算出任务1的等待时间为60秒、任务2的等待时间是100秒、任务3的等待时间是76秒、任务4的等待时间是232秒。优选地,也可以直接采用start=random(0,interval)计算得到等待时间。其中,random(a,b)表示区间[a,b)中的一个随机值,对于具体的计算方法在此不做限定。
S910:根据上述得到的调度周期、等待时间以及调度时间段生成调度信息表达式,优选地,可以利用[(start,interval),quartz]进行表示,从而构成本申请的方法表示。
在本优选实施例中,以quartz表达式为例进行说明,但是本申请不仅限于quartz,还可以适用于其它类似于quartz的用于对任务进行调度的表达式。
其中,start表示任务在调度周期到任务延迟调度的等待时间(优选的,单位为秒),也就是说,在调度周期到达时延迟等待时间对待调度任务进行调度。通过这种方式可以防止大量任务在调度服务器中集中在一起进行调度。优选的,可以只在首次调度的时候计算该任务调度信息表达式,对于以后的每次调度可以采用首次生成的等待时间进行调度。interval表示周期性任务的调度间隔(优选的,单位秒),也就是周期性任务的调度周期。quartz表示quartz表达式,该表达式用于表示一个连续的时间段,表明该任务只有在这个时间段内才进行调度,在这个时间段以外的时间范围内对该任务都不进行调度。
S912:调度服务器根据以上表达式对任务进行调度。通过每个任务对应的不同的等待时间,在调度周期到来的时候,任调度服务器延迟60秒调度任务1再调度、延迟100秒调度任务2、延迟76秒调度任务3、延迟232秒调度任务4。每个任务通过不同的start时间,错开调度,解决了由于在特定时间点上执行大量的调度任务所产生的性能问题,提高了资源利用率和调度服务器的处理效率
例如,[(20,60),*****?],表示一个调度周期为60秒的任务,在调度服务器开始工作后,在调度周期到来时,会推迟20秒再对该任务进行调度,对于不同的任务会选择不同的start值,从而可以保证任务不会集中在一个时间点上进行调度。
在本优选的表示方法中,依赖于对start值的设定,并没有明确指定任务在哪个时间点上调度,算法尽量保证任务平均分配到各个时间点上调度,从而避免了大量任务集中在某个时间点调度的情况。当一个周期性任务开始调度后,每隔一定的间隔,任务会再次触发调度。为了尽量保证任务处理的时效性,延迟的start时间,应该是一个小于调度间隔的值,从而不会出现一个周期任务在先一次的调度还没执行完,在后一次的调度已经开始执行的情况,这样才能保证任务准确的执行。
通过以上的描述可知,本申请具有以下优势:
1)通过将周期性任务的调度时段和调度间隔分离,并增加了一个等待时间(start)的属性,使得每个任务通过不同的start时间,错开调度,解决了由于在特定时间点上执行大量的调度任务所产生的性能问题,提高了资源利用率和调度服务器的处理效率。
2)本申请提供了计算start值的算法,尽可能地保证了任务的调度均衡,同时该计算算法还可以根据任务的调度时间或者是任务的场景进行合理的改变,提高了本申请的适用性。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种任务调度方法,其特征在于,包括:
获取待调度任务的调度周期和所述待调度任务的调度起始时间;
根据所述调度周期和所述调度起始时间生成与所述待调度任务对应的等待时间,其中,具有相同调度周期和相同调度起始时间的不同待调度任务对应不同的等待时间;
在所述调度周期到达时延迟所述等待时间对所述待调度任务进行调度。
2.根据权利要求1所述的方法,其特征在于,根据所述调度周期和所述调度起始时间生成与所述待调度任务对应的等待时间的步骤包括:
在范围[0,调度周期)之间随机选取N个数值,其中,N为具有相同调度周期和调度起始时间的不同待调度任务的个数;
将所选取的N个数值作为等待时间分别分配给具有相同调度周期和调度起始时间的N个不同待调度任务。
3.根据权利要求2所述的方法,其特征在于,通过如下公式在范围[0,调度周期)之间随机选取N个数值中的每一个数值:
start=random(0,interval/f)*f
其中,start表示所述等待时间,random(a,b)表示区间[a,b)中的一个随机值,interval表示所述调度周期,f为1至所述调度周期之间的一个整数。
4.根据权利要求1所述的方法,其特征在于,根据所述调度周期和所述调度起始时间生成与所述待调度任务对应的等待时间之后,还包括:
采用以下方式记录与所述待调度任务对应的调度信息:[(start,interval),quartz],其中,start表示所述等待时间,interval表示所述调度周期,quartz表示所述待调度任务的调度时间段。
5.根据权利要求4所述的方法,其特征在于,在所述调度周期到达时延迟所述等待时间对所述待调度任务进行调度的步骤包括:
获取调度时间段包括当前时间的调度信息;
判断所获取的调度信息对应的调度周期是否到达;
在判断的调度周期到达时延迟所述等待时间对与获取的调度信息对应的待调度任务进行调度。
6.一种任务调度装置,其特征在于,包括:
获取单元,用于获取待调度任务的调度周期和所述待调度任务的调度起始时间;
生成单元,用于根据所述调度周期和所述调度起始时间生成与所述待调度任务对应的等待时间,其中,具有相同调度周期和相同调度起始时间的不同待调度任务对应不同的等待时间;
调度单元,用于在所述调度周期到达时延迟所述等待时间对所述待调度任务进行调度。
7.根据权利要求6所述的装置,其特征在于,所述生成单元包括:
选取模块,用于在范围[0,调度周期)之间随机选取N个数值,其中,N为具有相同调度周期和调度起始时间的不同待调度任务的个数;
分配模块,用于将所选取的N个数值作为等待时间分别分配给具有相同调度周期和调度起始时间的N个不同待调度任务。
8.根据权利要求7所述的装置,其特征在于,所述选取模块包括:
选取子模块,用于通过如下公式在范围[0,调度周期)之间随机选取N个数值中的每一个数值:start=random(0,interval/f)*f
其中,start表示所述等待时间,random(a,b)表示区间[a,b)中的一个随机值,interval表示所述调度周期,f为1至所述调度周期之间的一个整数。
9.根据权利要求6所述的装置,其特征在于,还包括:
记录单元,用于在生成与所述待调度任务对应的等待时间之后,采用以下方式记录与所述待调度任务对应的调度信息:[(start,interval),quartz],其中,start表示所述等待时间,interval表示所述调度周期,quartz表示所述待调度任务的调度时间段。
10.根据权利要求9所述的装置,其特征在于,所述调度单元包括:
获取模块,用于获取调度时间段包括当前时间的调度信息;
判断模块,用于判断所获取的调度信息对应的调度周期是否到达;
调度模块,用于在判断的调度周期到达时延迟所述等待时间对与获取的调度信息对应的待调度任务进行调度。
CN201210009478.1A 2012-01-12 2012-01-12 任务调度方法和装置 Active CN103207807B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210009478.1A CN103207807B (zh) 2012-01-12 2012-01-12 任务调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210009478.1A CN103207807B (zh) 2012-01-12 2012-01-12 任务调度方法和装置

Publications (2)

Publication Number Publication Date
CN103207807A true CN103207807A (zh) 2013-07-17
CN103207807B CN103207807B (zh) 2017-06-27

Family

ID=48755037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210009478.1A Active CN103207807B (zh) 2012-01-12 2012-01-12 任务调度方法和装置

Country Status (1)

Country Link
CN (1) CN103207807B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834564A (zh) * 2015-05-20 2015-08-12 百度在线网络技术(北京)有限公司 任务调度的方法和装置
CN105260244A (zh) * 2015-10-30 2016-01-20 北京奇艺世纪科技有限公司 一种分布式系统任务调度的方法和装置
WO2016082370A1 (zh) * 2014-11-25 2016-06-02 中国科学院声学研究所 一种分布式节点组内任务调度方法及系统
CN105824692A (zh) * 2015-01-07 2016-08-03 中国移动通信集团湖南有限公司 一种系统调度方法和装置
CN106775977A (zh) * 2016-12-09 2017-05-31 北京小米移动软件有限公司 任务调度方法、装置及系统
CN107273191A (zh) * 2016-04-06 2017-10-20 北京京东尚科信息技术有限公司 一种使用逻辑克隆表达式的定时任务调度的方法及装置
CN109254835A (zh) * 2018-06-27 2019-01-22 阿里巴巴集团控股有限公司 批处理任务的处理方法、装置、服务器及可读存储介质
CN110196766A (zh) * 2019-05-31 2019-09-03 中车青岛四方机车车辆股份有限公司 任务调度和处理方法及装置、存储介质和处理器
CN110336859A (zh) * 2019-06-06 2019-10-15 广州市玄武无线科技股份有限公司 一种多租户环境下的任务调度系统
CN110609784A (zh) * 2018-06-15 2019-12-24 马上消费金融股份有限公司 任务调度方法及系统、存储介质及电子设备
CN110865885A (zh) * 2019-10-09 2020-03-06 北京邮电大学 面向分布式数据处理与聚合的任务部署装置和方法
CN111562974A (zh) * 2020-04-30 2020-08-21 苏州亿歌网络科技有限公司 一种离线数据的采集方法、装置、设备及存储介质
CN112000485A (zh) * 2020-09-01 2020-11-27 北京元心科技有限公司 任务分配方法、装置、电子设备及计算机可读存储介质
CN112379986A (zh) * 2020-11-16 2021-02-19 北京字跳网络技术有限公司 任务处理方法、装置和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145112A (zh) * 2007-11-01 2008-03-19 北京工业大学 一种实时系统任务调度方法
CN101166208A (zh) * 2006-10-20 2008-04-23 北京直真节点技术开发有限公司 一种维护作业自动化的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101166208A (zh) * 2006-10-20 2008-04-23 北京直真节点技术开发有限公司 一种维护作业自动化的方法及系统
CN101145112A (zh) * 2007-11-01 2008-03-19 北京工业大学 一种实时系统任务调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李其昌: "基于等待时间的多任务调度算法的研究与设计", 《计算机与数字工程》, 31 December 2011 (2011-12-31) *

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474504B2 (en) 2014-11-25 2019-11-12 Institute Of Acoustics, Chinese Academy Of Sciences Distributed node intra-group task scheduling method and system
WO2016082370A1 (zh) * 2014-11-25 2016-06-02 中国科学院声学研究所 一种分布式节点组内任务调度方法及系统
CN105656973A (zh) * 2014-11-25 2016-06-08 中国科学院声学研究所 一种分布式节点组内任务调度方法及系统
CN105656973B (zh) * 2014-11-25 2018-11-13 中国科学院声学研究所 一种分布式节点组内任务调度方法及系统
CN105824692A (zh) * 2015-01-07 2016-08-03 中国移动通信集团湖南有限公司 一种系统调度方法和装置
CN105824692B (zh) * 2015-01-07 2019-06-14 中国移动通信集团湖南有限公司 一种系统调度方法和装置
CN104834564B (zh) * 2015-05-20 2018-12-14 百度在线网络技术(北京)有限公司 任务调度的方法和装置
CN104834564A (zh) * 2015-05-20 2015-08-12 百度在线网络技术(北京)有限公司 任务调度的方法和装置
CN105260244A (zh) * 2015-10-30 2016-01-20 北京奇艺世纪科技有限公司 一种分布式系统任务调度的方法和装置
CN105260244B (zh) * 2015-10-30 2019-11-22 北京奇艺世纪科技有限公司 一种分布式系统任务调度的方法和装置
CN107273191B (zh) * 2016-04-06 2020-09-29 北京京东尚科信息技术有限公司 一种使用逻辑克隆表达式的定时任务调度的方法及装置
CN107273191A (zh) * 2016-04-06 2017-10-20 北京京东尚科信息技术有限公司 一种使用逻辑克隆表达式的定时任务调度的方法及装置
CN106775977B (zh) * 2016-12-09 2020-06-02 北京小米移动软件有限公司 任务调度方法、装置及系统
CN106775977A (zh) * 2016-12-09 2017-05-31 北京小米移动软件有限公司 任务调度方法、装置及系统
CN110609784B (zh) * 2018-06-15 2021-06-29 马上消费金融股份有限公司 任务调度方法及系统、存储介质及电子设备
CN110609784A (zh) * 2018-06-15 2019-12-24 马上消费金融股份有限公司 任务调度方法及系统、存储介质及电子设备
CN109254835A (zh) * 2018-06-27 2019-01-22 阿里巴巴集团控股有限公司 批处理任务的处理方法、装置、服务器及可读存储介质
CN110196766A (zh) * 2019-05-31 2019-09-03 中车青岛四方机车车辆股份有限公司 任务调度和处理方法及装置、存储介质和处理器
CN110336859B (zh) * 2019-06-06 2020-04-07 广州市玄武无线科技股份有限公司 一种多租户环境下的任务调度系统
CN110336859A (zh) * 2019-06-06 2019-10-15 广州市玄武无线科技股份有限公司 一种多租户环境下的任务调度系统
CN110865885A (zh) * 2019-10-09 2020-03-06 北京邮电大学 面向分布式数据处理与聚合的任务部署装置和方法
CN110865885B (zh) * 2019-10-09 2022-11-18 北京邮电大学 面向分布式数据处理与聚合的任务部署装置和方法
CN111562974A (zh) * 2020-04-30 2020-08-21 苏州亿歌网络科技有限公司 一种离线数据的采集方法、装置、设备及存储介质
CN112000485A (zh) * 2020-09-01 2020-11-27 北京元心科技有限公司 任务分配方法、装置、电子设备及计算机可读存储介质
CN112000485B (zh) * 2020-09-01 2024-01-12 北京元心科技有限公司 任务分配方法、装置、电子设备及计算机可读存储介质
CN112379986A (zh) * 2020-11-16 2021-02-19 北京字跳网络技术有限公司 任务处理方法、装置和电子设备
CN112379986B (zh) * 2020-11-16 2023-12-12 北京字跳网络技术有限公司 任务处理方法、装置和电子设备

Also Published As

Publication number Publication date
CN103207807B (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
CN103207807A (zh) 任务调度方法和装置
Xu et al. T-storm: Traffic-aware online scheduling in storm
Boyer et al. Load balancing in a changing world: dealing with heterogeneity and performance variability
Tang et al. A self-adaptive scheduling algorithm for reduce start time
CN103365708A (zh) 任务调度方法和装置
CN109597685A (zh) 任务分配方法、装置和服务器
CN108536530B (zh) 一种多线程任务调度方法及装置
CN111861412B (zh) 面向完成时间优化的科学工作流调度方法及系统
CN103106222A (zh) 定时器的处理方法及装置
CN110569090A (zh) 一种数据处理方法、装置、电子设备及存储介质
Guo et al. The concurrent consideration of uncertainty in WCETs and processor speeds in mixed-criticality systems
CN102932200B (zh) 一种信息流节点处理时限的监控方法及装置
Zhong et al. Model-based parallelizer for embedded control systems on single-isa heterogeneous multicore processors
Cho et al. Scheduling parallel real-time tasks on the minimum number of processors
Tunc et al. Value of service based task scheduling for cloud computing systems
CN103220166B (zh) 服务器集群的license管理方法
Hasan et al. A model-driven approach for predicting and analysing the execution efficiency of multi-core processing
CN115964182B (zh) 资源的调度方法和系统
Okamura et al. Optimal trigger time of software rejuvenation under probabilistic opportunities
Crecana et al. Monitoring-based auto-scalability across hybrid clouds
Lin et al. Automatic resource scaling for web applications in the cloud
Desirena-Lopez et al. On-line scheduling in multiprocessor systems based on continuous control using timed continuous petri nets
Bertogna Evaluation of existing schedulability tests for global EDF
Wajid et al. Optimizing energy efficiency in the cloud using service composition and runtime adaptation techniques
Hasan et al. A New Multi-core CPU Resource Availability Prediction Model for Concurrent Processes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1183361

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1183361

Country of ref document: HK

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221111

Address after: Room 507, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: ZHEJIANG TMALL TECHNOLOGY Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.