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

技术编号:9276266 阅读:75 留言:0更新日期:2013-10-24 23:26
本申请公开了一种任务调度方法和装置,其中,该方法包括:每隔预定的周期检测为处于未执行或等待执行状态的第一任务所设置的期望完成时间与当前系统时间之间的间隔是否小于预定时间;若间隔小于预定时间,则根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重以及与第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整;根据调整后的权重的大小按顺序对所有未执行或等待执行状态的任务进行调度。本申请解决了现有技术中任务权重一旦设置完成便不再变动而造成的任务很难在调度服务器容忍的时间段内执行完成,使得系统调度出现异常的技术问题。

【技术实现步骤摘要】
任务调度方法和装置
本申请涉及互联网领域,具体而言,涉及一种任务调度方法和装置。
技术介绍
随着社会的发展,调度在生产、电力、交通指挥以及计算机作业控制等领域中得到了广泛的应用。例如,数据仓库是决策支持系统(DecisionSupportSystem,简称为DSS)和联机分析应用数据源的结构化数据环境,基于数据仓库的调度系统一般会通过任务来描述数据仓库的一个业务处理流程。然而,随着需要处理的业务数量的增多,调度系统需要负责的任务也越来越多。各个任务之间存在一定的依赖关系。如图1所示,任务12、13和14依赖于任务11完成之后才能被执行,任务17依赖于任务13完成之后才能被执行,任务15依赖于任务12完成之后才能被执行,任务18依赖于任务13、14、15以及17完成之后才能被执行。以图1为例进行说明,当任务11完成后,任务12、13和14才可以开始被执行,这时任务12、13和14请求执行所需的资源,然而,同一时间整个系统的处理能力有限,当多个任务等待同一个系统资源的时候,必然会出现系统资源的竞争问题。这时,每一个任务会按照自身权重的大小排队请求系统资源,即,权重大的优先获取请求的资源。通过上述方式,任务权重的大小就显得尤为重要。一般情况下,任务调度系统对业务处理有一个容忍时段,被调度执行的任务需要在规定的时间点之前完成,否则该任务将被延迟执行。任务权重决定了任务执行的先后顺序。现有技术中,任务权重是根据任务的优先级和平均处理时间等因素按照某种规则事先计算得出,一旦确认好每个任务的任务权重该任务对应的权重将不再发生变化,即,任务权重的分配是静态的。然而,对任务的每一次调度,会受到多种因素的影响,这些因素主要有:数据量的大小、系统的繁忙程度以及网络负载等。在任务调度的过程中,每个任务的完成时间是不同的,任务之间还存在一定的依赖关系,因此,在同一时刻请求系统资源的任务也必然是不同的。对于现有技术中的静态权重不能根据当前系统的调度情况对等待资源的任务的执行先后顺序进行合理地调配,使得任务很难在调度服务器容忍的时间段内执行完成。针对上述问题,目前尚未提出有效的解决方案。
技术实现思路
本申请提供了一种任务调度方法和装置,以至少现有技术中任务权重一旦设置完成便不再变动而造成的任务很难在调度服务器容忍的时间段内执行完成,使得系统调度出现异常的技术问题。根据本申请的一个方面,提供了一种任务调度方法,包括:每隔预定的周期检测为处于未执行或等待执行状态的第一任务所设置的期望完成时间与当前系统时间之间的间隔是否小于预定时间;若间隔小于预定时间,则根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重以及与第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整;根据调整后的权重的大小按顺序对所有未执行或等待执行状态的任务进行调度。优选地,根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重以及与第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整的步骤包括:根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重和第二任务的当前权重进行增加。优选地,根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重以及与第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整的步骤包括:在根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重和第二任务的当前权重进行增加之前,通过以下递归步骤获取第二任务,其中,当前任务的初始值为第一任务:步骤A:判断当前任务是否存在具有依赖关系的、且处于未执行或等待执行状态的前一个任务,其中,依赖关系指的是当前任务的执行依赖于前一个任务的执行;步骤B:若存在,则将该当前任务记录为第二任务中的任务,并将每一个前一个任务分别设置为当前任务,转至执行步骤A;若不存在,则停止执行对当前任务的递归步骤。优选地,按照如下公式,根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重以及与第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整:w=w+[(W-w)/K]×D其中,w为第一任务和第二任务中的每一个任务的当前权重;W为系统允许任务的最大权重;K为预定时间;D为预定的周期。优选地,每隔预定的周期检测为处于未执行或等待执行状态的第一任务所设置的期望完成时间与当前系统时间之间的间隔是否小于预定时间的步骤包括:每隔预定的周期检测是否存在处于未执行或等待执行状态的任务;若存在,则判断是否为处于未执行或等待执行状态的任务设置了期望完成时间;若设置了期望完成时间,则判断期望完成时间与当前系统时间之间的间隔是否小于预定时间。根据本申请的另一方面,提供了一种任务调度装置,包括:检测单元,用于每隔预定的周期检测为处于未执行或等待执行状态的第一任务所设置的期望完成时间与当前系统时间之间的间隔是否小于预定时间;调整单元,用于在间隔小于预定时间时,则根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重以及与第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整;调度单元,用于根据调整后的权重的大小按顺序对所有未执行或等待执行状态的任务进行调度。优选地,调整单元还用于根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重和第二任务的当前权重进行增加。优选地,该任务调度装置还包括:获取单元,用于通过以下递归步骤获取第二任务,其中,当前任务的初始值为第一任务:步骤A:判断当前任务是否存在具有依赖关系的、且处于未执行或等待执行状态的前一个任务,其中,依赖关系指的是当前任务的执行依赖于前一个任务的执行;步骤B:若存在,则将该当前任务记录为第二任务中的任务,并将每一个前一个任务分别设置为当前任务,转至执行步骤A;若不存在,则停止执行对当前任务的递归步骤。优选地,调整单元根据第一任务的当前权重、预定的周期、系统允许任务的最大权重以及预定时间对第一任务的当前权重以及与第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整的步骤包括:w=w+[(W-w)/K]×D其中,w为第一任务和第二任务中的每一个任务的当前权重;W为系统允许任务的最大权重;K为预定时间;D为预定的周期。优选地,检测单元包括:检测模块,用于每隔预定的周期检测是否存在处于未执行或等待执行状态的任务;第一判断模块,用于在存在处于未执行或等待执行状态的任务时,判断是否为处于未执行或等待执行状态的任务设置了期望完成时间;第二判断模块,用于在设置了期望完成时间时,判断期望完成时间与当前系统时间之间的间隔是否小于预定时间。在本申请中,对任务的期望完成时间和系统当前时间之间的间隔进行判断,当其小于预定时间时,则动态地调整上述任务的权重,使得调整后的权重能够保证该任务在期望完成时间内完成,通过这种权重的动态调整,解决了现有技术中任务权重一旦设置完成便不再变动而造成本文档来自技高网
...
任务调度方法和装置

【技术保护点】
一种任务调度方法,其特征在于,包括:每隔预定的周期检测为处于未执行或等待执行状态的第一任务所设置的期望完成时间与当前系统时间之间的间隔是否小于预定时间;若所述间隔小于所述预定时间,则根据所述第一任务的当前权重、所述预定的周期、系统允许任务的最大权重以及所述预定时间对所述第一任务的当前权重以及与所述第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整;根据调整后的权重的大小按顺序对未执行或等待执行状态的任务进行调度。

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:每隔预定的周期检测为处于未执行或等待执行状态的第一任务所设置的期望完成时间与当前系统时间之间的间隔是否小于预定时间;若所述间隔小于所述预定时间,则根据所述第一任务的当前权重、所述预定的周期、系统允许任务的最大权重以及所述预定时间对所述第一任务的当前权重以及与所述第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整;根据调整后的权重的大小按顺序对未执行或等待执行状态的任务进行调度。2.根据权利要求1所述的方法,其特征在于,根据所述第一任务的当前权重、所述预定的周期、系统允许任务的最大权重以及所述预定时间对所述第一任务的当前权重以及与所述第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整的步骤包括:根据所述第一任务的当前权重、所述预定的周期、系统允许任务的最大权重以及所述预定时间对所述第一任务的当前权重和所述第二任务的当前权重进行增加。3.根据权利要求2所述的方法,其特征在于,根据所述第一任务的当前权重、所述预定的周期、系统允许任务的最大权重以及所述预定时间对所述第一任务的当前权重以及与所述第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整的步骤包括:在根据所述第一任务的当前权重、所述预定的周期、系统允许任务的最大权重以及所述预定时间对所述第一任务的当前权重和所述第二任务的当前权重进行增加之前,通过以下递归步骤获取所述第二任务,其中,当前任务的初始值为所述第一任务:步骤A:判断所述当前任务是否存在具有依赖关系的、且处于未执行或等待执行状态的前一个任务,其中,所述依赖关系指的是所述当前任务的执行依赖于所述前一个任务的执行;步骤B:若存在,则将该当前任务记录为所述第二任务中的任务,并将每一个所述前一个任务分别设置为当前任务,转至执行所述步骤A;若不存在,则停止执行对所述当前任务的递归步骤。4.根据权利要求1至3中任一项所述的方法,其特征在于,按照如下公式,根据所述第一任务的当前权重、所述预定的周期、系统允许任务的最大权重以及所述预定时间对所述第一任务的当前权重以及与所述第一任务存在依赖关系的、且处于未执行或等待执行状态的第二任务的当前权重进行调整:w=w+[(W-w)/K]×D其中,w为所述第一任务和所述第二任务中的每一个任务的当前权重;W为所述系统允许任务的最大权重;K为所述预定时间;D为所述预定的周期。5.根据权利要求1至3中任一项所述的方法,其特征在于,所述每隔预定的周期检测为处于未执行或等待执行状态的第一任务所设置的期望完成时间与当前系统时间之间的间隔是否小于预定...

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

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

1