一种系统任务分配方法

文档序号:8942942阅读:342来源:国知局
一种系统任务分配方法
【技术领域】
[0001]本发明涉及分布式系统技术领域,尤其涉及一种系统任务分配方法。
【背景技术】
[0002]在分布式系统中存在多个运算节点,以及结构复杂、数量众多的系统任务。现有的任务分配方法无法按照使用者设定的方式灵活地分配任务,不同的系统任务之间若存在相互依赖关系(例如父任务的输出为子任务的输入),则现有技术中无法针对这些任务进行关联性分配,同时存在运算系统可用性较差,可维护性不佳等问题。

【发明内容】

[0003]根据现有技术中存在的问题,现提供一种系统任务分配方法,旨在解决传统的多任务-多运算节点模式下任务分配非常混乱,无法很好地分配和执行链式任务等问题。
[0004]上述技术方案具体包括:
[0005]—种系统任务分配方法,适用于分布式运算系统,所述分布式运算系统包括多个运算端;其中,包括一分别与每个所述运算端连接的控制端,还包括:
[0006]步骤SI,根据外部输入的配置指令,在所述控制端内配置不同的系统任务的属性,以及所述系统任务之间的依赖关系;
[0007]步骤S2,所述控制端依照不同的所述系统任务之间的依赖关系构造形成包括所有所述系统任务的任务关系树;
[0008]步骤S3,所述控制端遍历所述任务关系树,以将所有所述系统任务按照对应的遍历顺序放入一执行队列中;
[0009]步骤S4,所述控制端依照所述遍历顺序依次读取所述执行队列中的所有所述系统任务,并将关联于每个所述系统任务的所述属性下发至对应的所述运算端进行运算。
[0010]优选的,该系统任务分配方法,其中,所述步骤SI中,关联于所述系统任务的属性包括:
[0011]关联于所述系统任务的任务参数;和/或
[0012]关联于所述系统任务的程序代码的存储地址;和/或
[0013]关联于所述系统任务的任务名称;和/或
[0014]具有所述依赖关系的所述系统任务的执行状况。
[0015]优选的,该系统任务分配方法,其中,所述步骤SI中,提供一连接所述控制端的配置端,以供使用者向所述控制端输入所述配置指令。
[0016]优选的,该系统任务分配方法,其中,所述任务关系树中的每个节点关联于一个所述系统任务的所有所述属性。
[0017]优选的,该系统任务分配方法,其中,所述步骤S3中,所述控制端采用广度优先遍历方式对所述任务关系树进行遍历;
[0018]则所述遍历顺序为广度优先的遍历顺序。
[0019]优选的,该系统任务分配方法,其中,所述步骤S4中,所述运算端将被执行的所述系统任务的执行状况反馈至所述控制端,所述控制端将所述执行状况作为具有所述依赖关系的所述系统任务的所述属性并保存于所述执行队列中。
[0020]优选的,该系统任务分配方法,其中,所述步骤S4具体包括:
[0021]步骤S41,所述控制端按照所述遍历顺序获取所述执行队列中的一个所述系统任务并送入一执行线程中;
[0022]步骤S42,所述控制端判断被获取的所述系统任务是否为所述执行队列中的第一个所述系统任务:
[0023]若是,则所述控制端采用所述执行线程,将所述系统任务下发至对应的所述运算端执行;
[0024]步骤S43,所述控制端根据关联于被获取的所述系统任务的所述属性,判断关联于所述系统任务的父任务是否已经执行完成:
[0025]若是,则所述控制端采用所述执行线程,将所述系统任务下发至对应的所述运算端执行;
[0026]步骤S44,所述控制端判断所述执行队列中是否存在尚未被执行的所述系统任务:
[0027]若否,则所述控制端将所述系统任务送入一缓冲队列中,随后返回所述步骤S41 ;
[0028]若是,则在经过预设的时间后返回所述步骤S43。
[0029]优选的,该系统任务分配方法,其中,所述步骤S42中,若判断被获取的所述系统任务为所述执行队列中的第一个所述系统任务后,所述控制端在将所述系统任务下发至对应的所述运算端执行的同时,从所述缓冲队列中提取一个所述系统任务并放入所述执行队列中。
[0030]优选的,该系统任务分配方法,其中,所述步骤S42中,若判断被获取的所述系统任务为所述执行队列中的第一个所述系统任务后,所述控制端将所述系统任务下发至对应的所述运算端执行,并继续执行下述步骤:
[0031]所述控制端根据所述运算端反馈的关联于所述系统任务的执行结果判断所述系统任务是否执行成功:
[0032]若是,则所述控制端将所述系统任务的执行状况设定为用于表示执行成功的第一标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中;
[0033]若否,则所述控制端将所述系统任务的执行状况设定为用于表示执行失败的第二标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中。
[0034]优选的,该系统任务分配方法,其中,所述步骤S43中,若判断关联于所述系统任务的父任务已经执行完成,则继续执行下述步骤:
[0035]步骤S431,判断所述系统任务是否为一预设的第一类型;
[0036]若是,则所述控制端直接采用所述执行线程,将所述系统任务下发至对应的所述运算端执行;
[0037]步骤S432,判断所述父任务是否执行成功:
[0038]若否,则所述控制端将所述系统任务的执行状况设定为用于表示执行失败的第二标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中;
[0039]步骤S433,判断所述系统任务是否为一预设的第二类型:
[0040]若是,则所述控制端直接采用所述执行线程,将所述系统任务下发至对应的所述运算端执行;
[0041]步骤S434,所述系统任务确认为一预设的第三类型,并进而判断所述父任务的执行时间是否与所述系统任务的执行时间相同:
[0042]若是,则所述控制端直接采用所述执行线程,将所述系统任务下发至对应的所述运算端执行;
[0043]若否,则所述控制端将所述系统任务的执行状况设定为用于表示执行失败的第二标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中。
[0044]优选的,该系统任务分配方法,其中,所述步骤S431中,若所述系统任务为所述第一类型,则所述控制端将所述系统任务下发至对应的所述运算端执行,并继续执行下述步骤:
[0045]所述控制端根据所述运算端反馈的关联于所述系统任务的执行结果判断所述系统任务是否执行成功:
[0046]若是,则所述控制端将所述系统任务的执行状况设定为用于表示执行成功的第一标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中;
[0047]若否,则所述控制端将所述系统任务的执行状况设定为用于表示执行失败的第二标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中。
[0048]优选的,该系统任务分配方法,其中,所述步骤S433中,若所述系统任务为所述第二类型,则所述控制端将所述系统任务下发至对应的所述运算端执行,并继续执行下述步骤:
[0049]所述控制端根据所述运算端反馈的关联于所述系统任务的执行结果判断所述系统任务是否执行成功:
[0050]若是,则所述控制端将所述系统任务的执行状况设定为用于表示执行成功的第一标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中;
[0051]若否,则所述控制端将所述系统任务的执行状况设定为用于表示执行失败的第二标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中。
[0052]优选的,该系统任务分配方法,其中,所述步骤S434中,若所述父任务的执行时间是否与所述系统任务的执行时间相同,则所述控制端将所述系统任务下发至对应的所述运算端执行,并继续执行下述步骤:
[0053]所述控制端根据所述运算端反馈的关联于所述系统任务的执行结果判断所述系统任务是否执行成功:
[0054]若是,则所述控制端将所述系统任务的执行状况设定为用于表示执行成功的第一标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中;
[0055]若否,则所述控制端将所述系统任务的执行状况设定为用于表示执行失败的第二标记,并将所述执行状况作为所述系统任务的所述属性反馈至所述执行队列中。
[0056]优选的,该系统任务分配方法,其中,所述第一类型用于指示执行所述系统任务仅依赖于对应的所述父任务已经被执行;
[0057]所
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1