[发明专利]一种任务调度方法和装置在审
申请号: | 201910125842.2 | 申请日: | 2019-02-20 |
公开(公告)号: | CN111597033A | 公开(公告)日: | 2020-08-28 |
发明(设计)人: | 梅志文 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;王安娜 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 调度 方法 装置 | ||
本发明公开了一种任务调度方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收分布式协调中心推送的客户端信息变化事件,所述客户端信息变化事件包括多个客户端服务器的标识;根据总任务项数和所述多个客户端服务器的标识,对所述多个客户端服务器执行分片;将分片结果发送到所述分布式协调中心,所述分片结果包括各个客户端服务器被分配到的任务项。该实施方式能够解决无法充分利用服务器资源的技术问题。
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务调度方法和装置。
背景技术
在大型企业及互联网应用中,各系统都或多或少地会通过任务调度的方式来帮助用户完成提交订单并付完款之后的业务流程。以火车票系统为例,当用户通过查询车次余票,提交订单并支付完成后,针对用户的操作流程就已经完成了,然后火车票后端系统的预订定时任务会每隔一段时间(例如10秒)扫描“支付完成并等待预订”的订单,然后请求供应商进行火车票的预订。
大部分的系统会将开发好的定时任务部署到单台服务器上进行运行,同时再部署另一台服务器作为备机。当其中一台服务器宕机后,启动另一台服务器继续跑定时任务,以进行订单的处理。
目前,一般使用quartz(开源项目)开发好定时任务,将其部署三到五台服务器,然后通过zookeeper(一个分布式的,开放源码的分布式应用程序协调服务)进行leader(领导者)选举。当任务定时调度执行时,判断当前服务器是不是leader,如果是leader,就执行相应的定时任务。当leader宕机后,zookeeper会重新选举出新的leader,由新的leader继续执行定时业务。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1)无法充分利用服务器的资源执行任务处理,每一次定时任务调度执行时,始终只有一台服务器处于active(执行)状态,其它所有服务器处于standy(等待)状态;
2)当数据量达到一定量级时,会导致单台服务器处理不过来,单机的处理能力始终是有极限的,无法通过横向扩容来解决性能瓶颈和吞吐量;
3)当zookeeper宕机后,定时任务将无法执行。
发明内容
有鉴于此,本发明实施例提供一种任务调度方法和装置,以解决无法充分利用服务器资源的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种任务调度方法,包括:
接收分布式协调中心推送的客户端信息变化事件,所述客户端信息变化事件包括多个客户端服务器的标识;
根据总任务项数和所述多个客户端服务器的标识,对所述多个客户端服务器执行分片;
将分片结果发送到所述分布式协调中心,所述分片结果包括各个客户端服务器被分配到的任务项。
可选地,根据总任务项数和所述多个客户端服务器的标识,对所述多个客户端服务器执行分片,包括:
遍历所述多个客户端服务器的标识,确定客户端服务器的数量;
根据总任务项数和所述客户端服务器的数量,并通过求余函数,确定各个客户端服务器被分配到的任务项的数量;
根据所述各个客户端服务器被分配到的任务项的数量以及预设分配规则,确定所述各个客户端服务器被分配到的任务项。
可选地,根据总任务项数和所述客户端服务器的数量,并通过求余函数,确定各个客户端服务器被分配到的任务项的数量,根据所述各个客户端服务器被分配到的任务项的数量以及预设分配规则,确定所述各个客户端服务器被分配到的任务项,包括:
将总任务项数与所述客户端服务器的数量相除,得到整数商和余数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910125842.2/2.html,转载请声明来源钻瓜专利网。