[发明专利]一种分布式任务调度方法、装置及系统在审
申请号: | 201611257139.X | 申请日: | 2016-12-30 |
公开(公告)号: | CN107092528A | 公开(公告)日: | 2017-08-25 |
发明(设计)人: | 梁福坤 | 申请(专利权)人: | 北京小度信息科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/48 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙)11363 | 代理人: | 逯长明,许伟群 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 任务 调度 方法 装置 系统 | ||
技术领域
本发明涉及分布式调度系统,尤其涉及一种分布式任务调度方法、装置及系统。
背景技术
调度系统一般是指以时间触发或者事件触发的方式在计算机上执行相应任务的系统。分布式主要是指将任务分布到不同计算机,任务执行有上下游,需要协同完成任务的工作方式。调度系统经常以分布式的方式实现,即形成分布式调度系统,主要用于在计算机集群之间执行定时或者被事件触发的任务,上游例如可以是调度服务器,下游例如可以是work(工作)服务器。
作为示例,一种场景是:调度服务器需要每隔一段时间(比如10min)就需要从多个工作服务器中选择一个工作服务器来执行一次任务E,例如任务E的内容(也可称为算子E)是把4h之前下单未完成的订单全部置为完成。
发明内容
发明人在实现本发明的过程中发现,在现有技术中,调度服务器的工作量繁重,尤其是在任务频繁、任务套叠时。例如调度服务器需要与各工作服务器频繁进行通信,又例如任务E执行一次就会在调度服务器的记录文件(如日志文件)中对应一个开闭集合,调度服务器通常需要通过扫描整个记录文件才能确定每次执行的任务E是否有开闭不完整(即只有开始执行的记录,无执行完成的记录)的情况。如果任务执行的频次很高,则导致逻辑计算非常复杂,不但逻辑计算的执行速度慢,还会致使调度服务器的压力特别大,甚至存在崩溃的高风险。
为解决上述技术问题,本发明实施例提供一种分布式任务调度方法、装置及系统,以减轻调度设备的压力并提高任务执行时的效率。
根据本发明实施例的第一方面,提供一种分布式任务调度方法,所述方法用于调度设备,所述方法包括:
当需要执行第一任务时,向数据库设备查询是否存在未完成的第二任务,其中,所述第二任务是在所述第一任务之前且与所述第一任务属于同一种任务的任务,所述数据库设备中记录有所有所述第二任务的进度状态;
如果存在未完成的第二任务,则拒绝执行所述第一任务;
如果不存在未完成的第二任务,则选择第一工作设备来执行所述第一任务,以及,通知所述数据库设备以使所述数据库设备开始记录所述第一任务的进度状态。
可选的,所述数据库设备还记录有所有任务的心跳信息;
所述方法还包括:
按照第一预设策略向所述数据库服务器查询未完成的任务的心跳信息;
如果未完成的任务的心跳信息超过预设时长未更新,则向执行所述未完成的任务的工作设备发送结束所述未完成的任务的指示。
根据本发明实施例的第二方面,提供一种分布式任务调度方法,所述方法用于第一工作设备,所述方法包括:
接收调度设备发来的执行第一任务的指示;
在执行所述第一任务的过程中,根据第二预设策略向数据库设备发送所述第一任务的进度状态,以使所述数据库设备对所记录的所述第一任务的进度状态进行更新。
可选的,所述方法还包括:
在执行所述第一任务的过程中,根据第三预设策略向所述数据库设备发送所述第一任务的心跳信息,以使所述数据库设备对所记录的所述第一任务的心跳信息进行更新。
根据本发明实施例的第三方面,提供一种分布式任务调度装置,所述装置包括:
任务检查模块,用于当需要执行第一任务时,向数据库设备查询是否存在未完成的第二任务,其中,所述第二任务是在所述第一任务之前且与所述第一任务属于同一种任务的任务,所述数据库设备中记录有所有所述第二任务的进度状态;
任务调度模块,用于如果存在未完成的第二任务,则拒绝执行所述第一任务;如果不存在未完成的第二任务,则选择第一工作设备来执行所述第一任务,以及,通知所述数据库设备以使所述数据库设备开始记录所述第一任务的进度状态。
可选的,所述数据库设备还记录有所有任务的心跳信息;
所述任务调度模块还用于:
按照第一预设策略向所述数据库服务器查询未完成的任务的心跳信息;如果未完成的任务的心跳信息超过预设时长未更新,则向执行所述未完成的任务的工作设备发送结束所述未完成的任务的指示。
根据本发明实施例的第四方面,提供一种分布式任务调度装置,所述装置包括:
任务接收模块,用于接收调度设备发来的执行第一任务的指示;
任务汇报模块,用于在执行所述第一任务的过程中,根据第二预设策略向数据库设备发送所述第一任务的进度状态,以使所述数据库设备对所记录的所述第一任务的进度状态进行更新。
可选的,所述任务汇报模块还用于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京小度信息科技有限公司,未经北京小度信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611257139.X/2.html,转载请声明来源钻瓜专利网。