一种基于分布式可配置加权算法的任务调度方法及系统的制作方法

文档序号:6546523阅读:325来源:国知局
一种基于分布式可配置加权算法的任务调度方法及系统的制作方法
【专利摘要】本发明适用于节点服务器的任务调度领域,提供了一种基于分布式可配置加权算法的任务调度方法及系统,该方法包括如下步骤:通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行;将每个任务组分配到各个节点服务器分别进行执行;检测节点服务器上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据加权算法重新进行分组。本发明能解决项目中出现的大批量周期性任务并发执行,合理充分利用系统资源。
【专利说明】一种基于分布式可配置加权算法的任务调度方法及系统
【技术领域】
[0001]本发明涉及节点服务器的任务调度领域,尤其涉及一种基于分布式可配置加权算法的任务调度方法及系统。
【背景技术】
[0002]随着项目部署范围扩大,所服务的节点数不断增加,多线程调度方案不能满足系统所需求的服务频率,周期性任务也不能按时完成。当前所面临的问题是如何保证大批量的周期性任务能在周期内完成执行。综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。

【发明内容】

[0003]针对上述的缺陷,本发明的目的在于提供一种基于分布式可配置加权算法的任务调度方法及系统,能解决项目中出现的大批量周期性任务并发执行,合理充分利用系统资源。
[0004]为了实现上述目的,本发明提供一种基于分布式可配置加权算法的任务调度方法,所述方法包括如下步骤:
[0005]通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行;
[0006]将每个任务组分配到各个节点服务器分别进行执行;
[0007]检测所述节点服务器上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据所述加权算法重新进行分组。
[0008]根据本发明的任务调度方法,“通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行”的步骤包括:
[0009]在一个任务组内创建频率分别为F1、F2、F3、F4的任务各N个,设置任务合并条件Cl为运行时间与周期的比值小于第一阈值,任务拆分条件C2为运行时间与周期的比值为大于第二阈值;
[0010]运行任务并统计每个频率每个任务的实际运行时间Tl(l?N),T2(l?N),T3(l ?N),T4(l ?N);
[0011]计算每个频率下每个任务的运行时间与周期的比值;
[0012]将同频率任务中条件满足Cl的任务进行合并,且使合并后的任务组的运行时间与周期的比值不满足任务合并条件Cl以及任务拆分条件C2 ;
[0013]将同频率任务中条件不满足Cl的任务单独作为一个任务组。
[0014]根据本发明的任务调度方法,“检测所述节点服务器上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据所述加权算法重新进行分组”的步骤包括:
[0015]巡检每个分组运行情况,一旦运行时间达到C2条件,则将该任务组内的任务进行拆分,并进行重新分组。
[0016]根据本发明的任务调度方法,所述方法还包括:当节点服务器接收到一个新任务时,将所述新任务放入任务分配队列中作为一个新的任务组,等待进行组合并。
[0017]本发明相应提供一种基于分布式可配置加权算法的任务调度系统,所述系统包括任务调度中心以及节点服务器,
[0018]所述节点服务器用于执行所述任务调动中心分配的任务;
[0019]所述任务调度中心包括任务分组模块以及任务巡检模块,
[0020]所述任务分组模块用于通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行;
[0021]所述任务巡检模块用于检测所述节点服务器上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据所述加权算法重新进行分组。
[0022]根据本发明的任务调度系统,所述任务分组模块还包括:
[0023]预设单元,用于在一个任务组内创建频率分别为F1、F2、F3、F4的任务各N个,设置任务合并条件Cl为运行时间与周期的比值小于第一阈值,任务拆分条件C2为运行时间与周期的比值为大于第二阈值;
[0024]统计单元,运行任务并统计每个频率每个任务的实际运行时间Tl (I?N),T2 (I?N),T3(l ?N),T4(l ?N);
[0025]计算单元,计算每个频率下每个任务的运行时间与周期的比值;
[0026]分组单元,将同频率任务中条件满足Cl的任务进行合并,且使合并后的任务组的运行时间与周期的比值不满足任务合并条件Cl以及任务拆分条件C2 ;将同频率任务中条件不满足Cl的任务单独作为一个任务组。
[0027]根据本发明的任务调度系统,所述任务巡检模块还用于巡检每个分组运行情况,一旦运行时间达到C2条件,则将该任务组内的任务进行拆分,并进行重新分组。
[0028]根据本发明的任务调度系统,任务调度中心还用于当节点服务器接收到一个新任务时,将所述新任务放入任务分配队列中作为一个新的任务组,等待进行组合并。
[0029]本发明通过建立多个服务器节点的工作组,统一由任务调度中心管理分配任务,将大量的任务负载分配到多个点执行。任务调度中心机制统筹调度任务分布,建立适当的任务分配规则保证各个节点都在额定负载范围内运行。不同频率任务分组集中管理,将不同频率的任务进行分类管理,以便于任务分组合并拆分管理。动态监视任务,及时拆分负载加重的任务。任务调度中心设置巡检线程,检测每个任务组的执行情况,当任务组运行时间达到警告运行时间时,对任务组进行拆分,保证任务下一周期达到期望内完成执行。借此,本发明能解决项目中出现的大批量周期性任务并发执行,合理充分利用系统资源。
【专利附图】

【附图说明】
[0030]图1是本发明一种基于分布式可配置加权算法的任务调度系统的框架图;
[0031]图2是本发明一种实施例中进行任务调度的流程图;
[0032]图3是本发明一种基于分布式可配置加权算法的任务调度方法的流程图。【具体实施方式】
[0033]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0034]如图1所示,本发明一种基于分布式可配置加权算法的任务调度系统100,包括任务调度中心10以及节点服务器20。节点服务器20用于执行任务调动中心10分配的任务,任务调度中心10包括任务分组模块11以及任务巡检模块12。
[0035]任务分组模块11用于通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行。加权算法并非该发明重点,因此在此不再详述。任务组的分配,把每个任务组分配制负载较小的节点服务器,一个节点服务器20可以运行多个任务组,每个任务组对应一个线程。
[0036]任务巡检模块12用于检测节点服务器20上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据加权算法重新进行分组。重新分组在任务调度中心10完成,出现拆分或者合并后重新根据节点负载下发任务。任务分布到不同节点服务器20运行,任务调度中心10只负责调度。
[0037]任务调度中心10还用于当节点服务器20接收到一个新任务时,将新任务放入任务分配队列中作为一个新的任务组,等待进行组合并。
[0038]优选的是,任务分组模块11还包括:预设单元111、统计单元112、计算单元113以及分组单元114。
[0039]预设单元111,用于在一个任务组内创建频率分别为F1、F2、F3、F4的任务各N个,设置任务合并条件Cl为运行时间与周期的比值小于第一阈值,任务拆分条件C2为运行时间与周期的比值为大于第二阈值。其中,周期为I/频率,在本发明中,描述频率实际为描述周期。
[0040]统计单元112,运行任务并统计每个频率每个任务的实际运行时间Tl (I?N),T2 (I ?N),T3 (I ?N),T4 (I ?N)。
[0041]计算单元113,计算每个频率下每个任务的运行时间与周期的比值。
[0042]分组单元114,将同频率任务中条件满足Cl的任务进行合并,且使合并后的任务组的运行时间与周期的比值不满足任务合并条件Cl以及任务拆分条件C2 ;将同频率任务中条件不满足Cl的任务单独作为一个任务组。
[0043]优选的是,任务巡检模块12还用于巡检每个分组运行情况,一旦运行时间达到C2条件,则将该任务组内的任务进行拆分,并进行重新分组。
[0044]对于将运行时间与该任务周期的比值大于Cl而小雨C2的单个任务不做处理,但是该组可以加入一个任务,前提是满足任务加入后运行时间不大于C2。
[0045]图2是本发明一种实施例中进行任务调度的流程图,其包括如下步骤:
[0046]步骤S201,创建任务并按频率分组,并根据运行任务记录运行时间并计算运行时间与周期的比值设置任务组合并条件Cl和任务组拆分条件C2。该周期根据频率计算得出。具体的可以创建周期分别为F1、F2、F3、F4的任务各N个,设置任务合并条件Cl为首次运行任务记录运行时间并计算运行时间与周期的比值小于百分之30,任务拆分条件C2为首次运行任务记录运行时间并计算运行时间与周期的比值大于百分之70。[0047]步骤S202,运行任务,记录运行时间并计算运行时间与周期的比值。具体的,首次运行统计每个频率每个任务的实际运行时间Tl (I?N),T2 (I?N),T3 (I?N),T4 (I?N)。
[0048]步骤S203,判断该比值是否满足任务组合并条件Cl,若是则进入步骤S204,否则进入步骤S205。
[0049]步骤S204,将满足该任务组合并条件Cl的任务合并为一个任务组。具体的,条件满足Cl的任务使用0-1背包进行合并,且保证合并后任务组保证不满足Cl条件。例如周期为Fl任务分别为Rl (I?X)、R2 (I?X)、R3 (I?X)、R4 (I?X),每个组任务运行时间不能满足条件C2,即不超过Fl周期的百分70。
[0050]步骤S205,将不满足该任务组合并条件Cl的任务单独形成为一个任务组。
[0051]步骤S206,周期执行每个任务组的任务。
[0052]步骤S207,统计每个任务组的运行时间。
[0053]步骤S208,判定是否满足任务组拆分条件C2。若是进入步骤S209,否则完成。
[0054]步骤S209,将该任务组内的任务进行拆分,并回到步骤S201。
[0055]本发明通过建立多个服务器节点的工作组,统一由任务调度中心管理分配任务,将大量的任务负载分配到多个点执行。任务调度中心机制统筹调度任务分布,建立适当的任务分配规则保证各个节点都在额定负载范围内运行。不同频率任务分组集中管理,将不同频率的任务进行分类管理,以便于任务分组合并拆分管理。动态监视任务,及时拆分负载加重的任务。任务调度中心设置巡检线程,检测每个任务组的执行情况,当任务组运行时间达到警告运行时间时,对任务组进行拆分,保证任务下一周期达到期望内完成执行。借此,本发明能解决项目中出现的大批量周期性任务并发执行,合理充分利用系统资源。
[0056]图3是本发明一种基于分布式可配置加权算法的任务调度方法的流程图。该方法通过如图1所示的系统实现,该方法包括如下步骤:
[0057]步骤S301,通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行。本步骤通过任务调度中心10的任务分组模块11实现。
[0058]步骤S302,将每个任务组分配到各个节点服务器分别进行执行。本步骤通过任务调度中心10和节点服务器20共同实现。
[0059]步骤S303,检测节点服务器上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据加权算法重新进行分组。本步骤通过任务调度中心10的任务巡检模块12实现。
[0060]优选地是,步骤S301还包括:创建频率分别为F1、F2、F3、F4的任务各N个,设置任务合并条件Cl为运行时间与周期的比值小于第一阈值,任务拆分条件C2为运行时间与周期的比值为大于第二阈值;运行任务并统计每个频率每个任务的实际运行时间Tl(l?N),T2(l?N),T3(l?N),T4(l?N);计算每个频率下每个任务的运行时间与周期的比值;将同频率任务中条件满足Cl的任务进行合并,且使合并后的任务组的运行时间与周期的比值不满足任务合并条件Cl以及任务拆分条件C2 ;将同频率任务中条件不满足Cl的任务单独作为一个任务组。
[0061]优选地是,步骤S303还包括:巡检每个分组运行情况,一旦运行时间达到C2条件,则将该任务组内的任务进行拆分,并进行重新分组。[0062]优选的是,该方法还包括:当节点服务器接收到一个新任务时,将新任务放入任务分配队列中作为一个新的任务组,等待进行组合并。
[0063]综上所述,本发明通过建立多个服务器节点的工作组,统一由任务调度中心管理分配任务,将大量的任务负载分配到多个点执行。任务调度中心机制统筹调度任务分布,建立适当的任务分配规则保证各个节点都在额定负载范围内运行。不同频率任务分组集中管理,将不同频率的任务进行分类管理,以便于任务分组合并拆分管理。动态监视任务,及时拆分负载加重的任务。任务调度中心设置巡检线程,检测每个任务组的执行情况,当任务组运行时间达到警告运行时间时,对任务组进行拆分,保证任务下一周期达到期望内完成执行。借此,本发明能解决项目中出现的大批量周期性任务并发执行,合理充分利用系统资源。
[0064]当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种基于分布式可配置加权算法的任务调度方法,其特征在于,所述方法包括如下步骤: 通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行; 将每个任务组分配到各个节点服务器分别进行执行; 检测所述节点服务器上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据所述加权算法重新进行分组。
2.根据权利要求1所述的任务调度方法,其特征在于,“通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行”的步骤包括: 在一个任务组内创建频率分别为F1、F2、F3、F4的任务各N个,设置任务合并条件Cl为运行时间与周期的比值小于第一阈值,任务拆分条件C2为运行时间与周期的比值为大于第二阈值; 运行任务并统计每个频率每个任务的实际运行时间Tl (I~N),T2 (I~N),T3 (I~N),T4(l ~N); 计算每个频率下每个任务的运行时间与周期的比值; 将同频率任务中条件满足Cl的任务进行合并,且使合并后的任务组的运行时间与周期的比值不满足任务合并条件Cl以及任务拆分条件C2 ; 将同频率任务中条件不满足Cl的任务单独作为一个任务组。
3.根据权利要求2所述的任务调度方法,其特征在于,“检测所述节点服务器上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据所述加权算法重新进行分组”的步骤包括: 巡检每个分组运行情况,一旦运行时间达到C2条件,则将该任务组内的任务进行拆分,并进行重新分组。
4.根据权利要求1所述的任务调度方法,其特征在于,所述方法还包括:当节点服务器接收到一个新任务时,将所述新任务放入任务分配队列中作为一个新的任务组,等待进行组合并。
5.一种基于分布式可配置加权算法的任务调度系统,其特征在于,所述系统包括任务调度中心以及节点服务器, 所述节点服务器用于执行所述任务调动中心分配的任务; 所述任务调度中心包括任务分组模块以及任务巡检模块, 所述任务分组模块用于通过配置加权算法对多个任务进行分组,按配置对同频率的任务进行分组,每个分组依照规则保证在期望概率类能够完成执行; 所述任务巡检模块用于检测所述节点服务器上的任务组的执行情况,当任务组运行时间达到或超过预设的阈值时间时,则对任务组内的任务进行拆分,并根据所述加权算法重新进行分组。
6.根据权利要求5所述的任务调度系统,其特征在于,所述任务分组模块还包括: 预设单元,用于在一个任务组内创建频率分别为F1、F2、F3、F4的任务各N个,设置任务合并条件Cl为运行时间与周期的比值小于第一阈值,任务拆分条件C2为运行时间与周期的比值为大于第二阈值; 统计单元,运行任务并统计每个频率每个任务的实际运行时间Tl (I~N),T2 (I~N),T3(l ~N),T4(l ~N); 计算单元,计算每个频率下每个任务的运行时间与周期的比值; 分组单元,将同频率任务中条件满足Cl的任务进行合并,且使合并后的任务组的运行时间与周期的比值不满足任务合并条件Cl以及任务拆分条件C2 ;将同频率任务中条件不满足Cl的任务单独作为一个任务组。
7.根据权利要求6所述的任务调度系统,其特征在于,所述任务巡检模块还用于巡检每个分组运行情况,一旦运行时间达到C2条件,则将该任务组内的任务进行拆分,并进行重新分组。
8.根据权利要求5所述的 任务调度系统,其特征在于,任务调度中心还用于当节点服务器接收到一个新任务时,将所述新任务放入任务分配队列中作为一个新的任务组,等待进行组合并。
【文档编号】G06F9/48GK103984594SQ201410203512
【公开日】2014年8月13日 申请日期:2014年5月14日 优先权日:2014年5月14日
【发明者】张发润 申请人:上海上讯信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1