logo好方法网

一种任务调度方法和装置


技术摘要:
本发明公开了一种任务调度方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收分布式协调中心推送的客户端信息变化事件,所述客户端信息变化事件包括多个客户端服务器的标识;根据总任务项数和所述多个客户端服务器的标识,对所述多个客户端服务器执行  全部
背景技术:
包 括:接收分布式协调中心推送的客户端信息变化 事件,所述客户端信息变化事件包括多个客户端 服务器的标识;根据总任务项数和所述多个客户 端服务器的标识,对所述多个客户端服务器执行 分片;将分片结果发送到所述分布式协调中心, 所述分片结果包括各个客户端服务器被分配到 的任务项。该实施方式能够解决无法充分利用服 务器资源的技术问题。 CN 111597033 A CN 111597033 A 权 利 要 求 书 1/2 页 1.一种任务调度方法,其特征在于,应用于服务端,包括: 接收分布式协调中心推送的客户端信息变化事件,所述客户端信息变化事件包括多个 客户端服务器的标识; 根据总任务项数和所述多个客户端服务器的标识,对所述多个客户端服务器执行分 片; 将分片结果发送到所述分布式协调中心,所述分片结果包括各个客户端服务器被分配 到的任务项。 2.根据权利要求1所述的方法,其特征在于,根据总任务项数和所述多个客户端服务器 的标识,对所述多个客户端服务器执行分片,包括: 遍历各个所述多个客户端服务器的标识,确定所述客户端服务器的数量; 根据总任务项数和所述客户端服务器的数量,并通过求余函数,确定各个客户端服务 器被分配到的任务项的数量; 根据所述各个客户端服务器被分配到的任务项的数量以及预设分配规则,确定所述各 个客户端服务器被分配到的任务项。 3.根据权利要求2所述的方法,其特征在于,根据总任务项数和所述客户端服务器的数 量,并通过求余函数,确定各个客户端服务器被分配到的任务项的数量,根据所述各个客户 端服务器被分配到的任务项的数量以及预设分配规则,确定所述各个客户端服务器被分配 到的任务项,包括: 将总任务项数与所述客户端服务器的数量相除,得到整数商和余数; 对各个客户端服务器依次分配整数商个任务项,并将余数个任务项依次分配给至少一 个客户端服务器。 4.根据权利要求1所述的方法,其特征在于,还包括: 接收所述客户端上报的负载数据,并将所述负载数据存储到数据库; 每隔一段时间读取所述数据库中的负载数据,根据所述负载数据判断客户端的负载是 否超过预设负载阈值,若是,则向所述客户端发送扩容指令。 5.根据权利要求1所述的方法,其特征在于,还包括: 若在预设时间阈值内未收到所述分布式协调中心推送的事件,则向所述客户端发送降 级指令。 6.一种任务调度方法,其特征在于,应用于客户端,包括: 接收分布式调度中心推送的分片完成事件,所述分片完成事件包括各个客户端服务器 被分配到的任务项; 根据所述任务项在文件系统中匹配相应的订单数据,处理所述订单数据,并将处理结 果发送到所述文件系统。 7.根据权利要求6所述的方法,其特征在于,还包括: 接收服务端发送的降级指令,各个客户端服务器停止执行当前任务; 预设的客户端服务器读取其他各个客户端服务器中存储的任务信息,根据所述任务信 息创建并执行定时任务。 8.一种任务调度装置,其特征在于,设置在服务端,包括: 第一接收模块,用于接收分布式协调中心推送的客户端信息变化事件,所述客户端信 2 CN 111597033 A 权 利 要 求 书 2/2 页 息变化事件包括多个客户端服务器的标识; 分片模块,用于根据总任务项数和所述多个客户端服务器的标识,对所述多个客户端 服务器执行分片; 发送模块,用于将分片结果发送到所述分布式协调中心,所述分片结果包括各个客户 端服务器被分配到的任务项。 9.一种任务调度装置,其特征在于,设置在客户端,包括: 第二接收模块,用于接收分布式调度中心推送的分片完成事件,所述分片完成事件包 括各个客户端服务器被分配到的任务项; 执行模块,用于根据所述任务项在文件系统中匹配相应的订单数据,处理所述订单数 据,并将处理结果发送到所述文件系统。 10.一种任务调度方法,其特征在于,包括: 服务端接收分布式协调中心推送的客户端信息变化事件,所述客户端信息变化事件包 括多个客户端服务器的标识;根据总任务项数和所述多个客户端服务器的标识,对所述多 个客户端服务器执行分片;将分片结果发送到所述分布式协调中心,所述分片结果包括各 个客户端服务器被分配到的任务项; 客户端接收分布式调度中心推送的分片完成事件,所述分片完成事件包括各个客户端 服务器被分配到的任务项;根据所述任务项在文件系统中匹配相应的订单数据,处理所述 订单数据,并将处理结果发送到所述文件系统。 11.一种任务调度系统,其特征在于,包括:服务端和客户端,所述服务端包括权利要求 8所述的任务调度装置,所述客户端包括权利要求9所述的任务调度装置。 12.一种电子设备,其特征在于,包括: 一个或多个处理器; 存储装置,用于存储一个或多个程序, 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实 现如权利要求1-7中任一所述的方法。 13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执 行时实现如权利要求1-7中任一所述的方法。 3 CN 111597033 A 说 明 书 1/15 页 一种任务调度方法和装置 技术领域 本发明涉及计算机技术领域,尤其涉及一种任务调度方法和装置。
技术实现要素:
在大型企业及互联网应用中,各系统都或多或少地会通过任务调度的方式来帮助 用户完成提交订单并付完款之后的业务流程。以火车票系统为例,当用户通过查询车次余 票,提交订单并支付完成后,针对用户的操作流程就已经完成了,然后火车票后端系统的预 订定时任务会每隔一段时间(例如10秒)扫描“支付完成并等待预订”的订单,然后请求供应 商进行火车票的预订。 大部分的系统会将开发好的定时任务部署到单台服务器上进行运行,同时再部署 另一台服务器作为备机。当其中一台服务器宕机后,启动另一台服务器继续跑定时任务,以 进行订单的处理。 目前,一般使用quartz(开源项目)开发好定时任务,将其部署三到五台服务器,然 后通过zookeeper(一个分布式的,开放源码的分布式应用程序协调服务)进行leader(领导 者)选举。当任务定时调度执行时,判断当前服务器是不是leader,如果是leader,就执行相 应的定时任务。当leader宕机后,zookeeper会重新选举出新的leader,由新的leader继续 执行定时业务。 在实现本发明过程中,发明人发现现有技术中至少存在如下问题: 1)无法充分利用服务器的资源执行任务处理,每一次定时任务调度执行时,始终 只有一台服务器处于active(执行)状态,其它所有服务器处于standy(等待)状态; 2)当数据量达到一定量级时,会导致单台服务器处理不过来,单机的处理能力始 终是有极限的,无法通过横向扩容来解决性能瓶颈和吞吐量; 3)当zookeeper宕机后,定时任务将无法执行。
下载此资料需消耗2积分,
分享到:
收藏