[发明专利]一种分布式任务调度方法及其装置在审
申请号: | 201910637727.3 | 申请日: | 2019-07-15 |
公开(公告)号: | CN112231073A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 李振威;范文斌 | 申请(专利权)人: | 上海哔哩哔哩科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 邓小玲 |
地址: | 200092 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 任务 调度 方法 及其 装置 | ||
本申请公开了一种分布式任务调度方法及其装置。本申请中,第一服务的客户端根据为所述第一服务配置的任务配置信息,确定需要获取的任务的种类,并根据所述需要获取的任务的种类,确定所述第一服务的客户端当前执行的与所述种类相同种类的任务的数量小于所述种类对应的单机并发数量门限,则从所述种类对应的任务队列中取出任务并异步执行。其中,所述任务配置信息包括所述第一服务包含的任务种类信息;与所述种类对应的任务队列用于存储所述种类的任务。
技术领域
本申请涉及任务处理技术,尤其涉及一种分布式任务调度方法及其装置。
背景技术
在网站后台服务中,经常会遇到批量执行异步任务的需求,任务提交方提交任务后,继续执行自己的业务,待任务执行完成或异常时再执行相应的逻辑。
如果采用单机服务器进行任务调度,则受限于单机服务器的资源限制,任务调度和任务执行的效率较低。
因此,考虑到系统可用性,对于需要进行异步执行任务的服务,需要具备分布式任务调度能力。
发明内容
本申请实施例提供一种分布式任务调度方法及其装置。
第一方面,提供一种分布式任务调度方法,包括:
第一服务的客户端根据为所述第一服务配置的任务配置信息,确定需要获取的任务的种类,并根据所述需要获取的任务的种类,确定所述第一服务的客户端当前执行的与所述种类相同种类的任务的数量小于所述种类对应的单机并发数量门限,则从所述种类对应的任务队列中取出任务并异步执行。其中,所述任务配置信息包括所述第一服务包含的任务种类信息,所述第一服务的客户端;其中,与所述种类对应的任务队列用于存储所述种类的任务。
在一种可能的实现方式中,所述需要获取的任务的种类至少为一种;所述第一服务的客户端根据所述需要获取的任务的种类,确定所述第一服务的客户端当前执行的与所述种类相同种类的任务的数量小于所述种类对应的单机并发数量门限,则从所述种类对应的任务队列中取出任务,包括:
所述第一服务的客户端依次针对所述至少一种任务中的每种任务,执行以下步骤,直到满足结束条件为止:
针对当前任务种类,确定所述第一服务的客户端上执行的该种任务的数量是否小于该种任务对应的单机并发数量门限,若是,则从该种任务对应的任务队列中获取一个任务,否则,获取下一个任务种类作为当前任务种类。
可选地,所述结束条件包括:所述第一服务的客户端当前执行的所述至少一种任务中的每种任务的数量等于对应任务种类的单机并发数量门限;或者,所述第一服务的客户端当前执行的所述至少一种任务中,一部分任务种类中的每种任务的数量等于对应任务种类的单机并发数量门限,其余部分任务种类中的每种任务对应的任务队列为空。
在一种可能的实现方式中,所述从所述种类对应的任务队列中取出任务并异步执行,包括:所述第一服务的客户端从所述种类对应的任务队列中取出任务后并在执行该任务之前,根据所述种类对应的任务有效时间,判断被取出的任务从取出到当前的时间长度是否小于所述任务有效时间,若是,则执行所述被取出的任务。
在一种可能的实现方式中,还包括:所述第一服务的客户端根据为当前执行的任务所属的任务种类配置的任务执行时间,判断所述当前执行的任务的执行时间长度是否大于或等于所述任务执行时间,若是,则结束执行所述当前执行的任务。
在一种可能的实现方式中,还包括:若任务执行成功,则记录任务执行成功的日志,发送任务执行成功的通知;若任务执行失败,则记录任务执行失败的日志,发送任务执行失败的通知。
在一种可能的实现方式中,还包括:第一服务的客户端生成任务后,根据生成的任务所属的任务种类,将生成的任务提交到该任务种类对应的任务队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海哔哩哔哩科技有限公司,未经上海哔哩哔哩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910637727.3/2.html,转载请声明来源钻瓜专利网。