任务调度方法和装置制造方法及图纸

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

【技术实现步骤摘要】
任务调度方法和装置
本申请涉及互联网领域,具体而言,涉及一种任务调度方法和装置。
技术介绍
目前,在计算机系统中对任务的执行都是采用,在某个具体的时间点上由调度服务器进行触发调度以实现对任务的调度。然而,该时间点往往是采用时间表达式来体现的,这些时间表达式可以表示某个具体的时间点,甚至可以精确到秒级对任务进行触发调度。因此,这种触发方式可以很好的实现在特定的某个时间点对任务进行触发调度。例如,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.一种任务调度方法,其特征在于,包括:获取待调度任务的调度周期和所述待调度任务的调度起始时间;根据所述调度周期和所述调度起始时间生成与所述待调度任务对应的等待时间,其中,具有相同调度周期和相同调度起始时间的不同待调度任务对应不同的等待时间;在所述调度周期到达时延迟所述等待时间对所述待调度任务进行调度;其中,根据所述调度周期和所述调度起始时间生成与所述待调度任务对应的等待时间的步骤包括:在范围[0,调度周期)之间随机选取N个数值,其中,N为具有相同调度周期和调度起始时间的不同待调度任务的个数;将所选取的N个数值作为等待时间分别分配给具有相同调度周期和调度起始时间的N个不同待调度任务;其中,所述等待时间小于所述调度周期。2.根据权利要求1所述的方法,其特征在于,通过如下公式在范围[0,调度周期)之间随机选取N个数值中的每一个数值:start=random(0,interval/f)*f其中,start表示所述等待时间,random(a,b)表示区间[a,b)中的一个随机值,interval表示所述调度周期,f为1至所述调度周期之间的一个整数。3.根据权利要求1所述的方法,其特征在于,根据所述调度周期和所述调度起始时间生成与所述待调度任务对应的等待时间之后,还包括:采用以下方式记录与所述待调度任务对应的调度信息:[(start,interval),quartz],其中,start表示所述等待时间,interval表示所述调度周期,quartz表示所述待调度任务的调度时间段。4.根据权利要求3所述的方法,其特征在于,在所述调度周期到达时延迟所述等待时间对所述待调度任务进行调度的步骤包括:获取调度时间段包括当前时间的调度信息;判断所获取的调度信息对应的调度周期是否到达;在判断的调度周期到达时延迟所述等待时间对与获取的调度信息对应的待调度任务进行调度。5.一...

【专利技术属性】
技术研发人员:周宇
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1