[发明专利]任务调度的方法及装置、分布式任务执行系统有效
申请号: | 201710657131.0 | 申请日: | 2017-08-03 |
公开(公告)号: | CN107291544B | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | 杨照通 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F16/951;H04L29/08 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 调度 方法 装置 分布式 执行 系统 | ||
1.一种任务调度的方法,其特征在于,包括:
当接收到请求节点发来的任务请求时,执行:
确定每个任务的当前任务规模;
确定执行每个所述任务的节点的当前第一数量;
根据每个所述任务的当前任务规模和每个所述任务对应的所述当前第一数量,确定每个所述任务的当前权重;
按照每个所述任务的当前权重,为所述请求节点分配目标任务;
所述确定每个任务的当前任务规模,包括:
确定每个所述任务中当前等待下载的链接的当前第二数量;
所述根据每个所述任务的当前任务规模和每个所述任务对应的所述当前第一数量,确定每个所述任务的当前权重,包括:
根据所述当前第一数量和所述当前第二数量,利用公式一确定每个所述任务的当前权重,其中,所述公式一为:
其中,Wi为第i个任务的当前权重,Ni为第i个任务的当前第一数量,Li为第i个任务的当前第二数量,a大于1;
进一步包括:预先设置已发送队列和任务队列;
在所述按照每个所述任务的当前权重,为所述请求节点分配目标任务之后,进一步包括:
将所述目标任务中当前等待下载的至少一个链接保存到所述任务队列中;
进一步包括:
当所述请求节点从所述任务队列中获取至少一个待处理链接时,将所述至少一个待处理链接转移到所述已发送队列中;
进一步包括:
当接收到所述请求节点发来的处理完成信号时,将所述处理完成信号对应的所述待处理链接从所述已发送队列中删除;
进一步包括:
实时判断所述已发送队列中是否存在存储时间超过第一预设时长的超时待处理链接,如果存在,则将所述超时待处理链接转移到所述任务队列中;
和/或,
所述按照每个所述任务的当前权重,为所述请求节点分配目标任务,包括:
按照每个所述任务的当前权重,确定所述目标任务;
将所述目标任务的标识发送给所述请求节点,以使所述请求节点根据所述目标任务的标识获取所述目标任务;
和/或,
所述按照每个所述任务的当前权重,为所述请求节点分配目标任务,包括:
将所述当前权重最大的任务作为所述目标任务,将所述目标任务分配给所述请求节点。
2.根据权利要求1所述的方法,其特征在于,
进一步包括:
接收各个节点周期性发来的心跳信号;
进一步包括:
针对每个节点,周期性判断距离当前节点的最近一次的心跳信号的时间长度是否超过第二预设时长,如果是,则确定所述当前节点没有执行任何任务。
3.根据权利要求2所述的方法,其特征在于,
所述任务请求中包括:所述请求节点的前一次被分配的任务的信息;
进一步包括:
根据所述任务请求中的所述前一次被分配的任务的信息,确定所述前一次被分配的任务;
在所述针对每个节点,周期性判断距离当前节点的最近一次的心跳信号的时间长度是否超过第二预设时长之后,进一步包括:
当距离所述当前节点的最近一次的心跳信号的时间长度没有超过所述第二预设时长时,确定所述当前节点为活动的节点;
所述按照每个所述任务的当前权重,为所述请求节点分配目标任务,包括:
根据公式二,确定权重阈值,其中,所述公式二为:
其中,T为所述权重阈值,n为所述活动的节点的数量;
确定各个所述任务的当前权重中的最大值与所述前一次被分配的任务的当前权重的差值;
判断所述差值是否大于等于所述权重阈值,如果是,则将所述当前权重最大的任务作为所述目标任务,将所述目标任务分配给所述请求节点,否则,保持所述请求节点执行所述前一次被分配的任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710657131.0/1.html,转载请声明来源钻瓜专利网。