一种任务调度方法、装置、系统及计算机可读存储介质制造方法及图纸

技术编号:35554693 阅读:24 留言:0更新日期:2022-11-12 15:35
本发明专利技术公开了一种任务调度方法、装置、系统及计算机可读存储介质,该方法包括:根据业务需求构建多个虚拟资源集;其中一个虚拟资源集对应一个用于执行业务需求所需的任务的业务线;接收多个用户提交到指定的业务线上的任务,并添加到指定的业务线对应的虚拟资源集的阻塞队列中;获取多个用户的第一属性信息及对应任务的第二属性信息,并根据第一属性信息及第二属性信息,确定阻塞队列中任务的优先级;根据优先级、第一属性信息、第二属性信息及配置信息,执行阻塞队列中的任务;基于用户的第一属性信息及对应任务的第二属性信息、指定的业务线对应虚拟资源集的配置信息进行任务调度,能有效提高任务调度的灵活性,减少任务阻塞的等待时间。塞的等待时间。塞的等待时间。

【技术实现步骤摘要】
一种任务调度方法、装置、系统及计算机可读存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种任务调度方法、装置、系统及计算机可读存储介质。

技术介绍

[0002]随着企业数字化转型和数据资产的累积,数据中台应运而生。数据中台的数据清洗、加工、ETL等业务需求每天都会产生大量的任务,这些任务来自不同的业务线和用户,有着不同的资源需求,预计消耗的时间也不同,对数据中台的任务调度带来了很大的挑战。
[0003]目前常用的一些调度系统,如AirFlow、Dolphin Scheduler 等,通常使用队列(有的系统也称之为标签)来实现隔离;每个实际执行任务的机器允许指定其处理一个或多个队列,而任务提交时指定其使用的队列,队列中使用先进先出(FIFO)的策略,从而实现任务在物理资源上的隔离、划分调度。
[0004]但是这样的调度粒度较粗,未考虑任务消耗的资源,可能造成任务阻塞、或占用资源过多而被系统杀死(Linux OOM Killer);也未考虑用户优先级、不能实时调整个别任务的优先级;因此,调整起来缺乏灵活性,任务执行等待的总时间也不够低。

技术实现思路

[0005]本专利技术实施例提供一种任务调度方法、装置、系统及计算机可读存储介质,其能有效提高任务调度的灵活性,减少任务阻塞的等待时间。
[0006]第一方面,本专利技术实施例提供了一种任务调度方法,包括:根据业务需求构建多个虚拟资源集;其中,一个所述虚拟资源集对应一个用于执行所述业务需求所需的任务的业务线;接收多个用户提交到指定的业务线上的任务,并添加到指定的业务线对应的虚拟资源集的阻塞队列中;获取多个所述用户的第一属性信息及对应任务的第二属性信息,并根据多个所述用户的第一属性信息及对应任务的第二属性信息,确定所述阻塞队列中各个任务的优先级;根据所述优先级、多个所述用户的第一属性信息、所述任务的第二属性信息以及指定的业务线对应虚拟资源集的配置信息,执行所述阻塞队列中的任务。
[0007]作为上述方案的改进,所述根据所述优先级、多个所述用户的第一属性信息、所述任务的第二属性信息以及指定的业务线对应虚拟资源集的配置信息,执行所述阻塞队列中的任务,包括:按照所述优先级由高到低的顺序,遍历所述阻塞队列中的任务;根据多个所述用户的第一属性信息、所述任务的第二属性信息以及指定的业务线对应虚拟资源集的配置信息,判断当前遍历到的任务是否满足预设的任务执行条件;若是,调用指定的业务线对应的虚拟资源集的资源执行当前遍历到的任务;
若否,将当前遍历到的任务放回所述阻塞队列。
[0008]作为上述方案的改进,所述第一属性信息包括:对应用户的用户等级、用户任务限制数量;所述第二属性信息包括:对应任务的申请CPU核数、申请内存、任务优先度以及任务提交时间戳;所述配置信息包括:对应虚拟资源集的总CUP核数、总内存、阻塞队列最大任务数量。
[0009]作为上述方案的改进,所述获取多个所述用户的第一属性信息及对应任务的第二属性信息,并根据多个所述用户的第一属性信息及对应任务的第二属性信息,确定所述阻塞队列中各个任务的优先级,包括:根据每个用户的所述用户等级及其提交的任务的任务优先度、任务提交时间戳,计算所述阻塞队列中对应任务的优先级。
[0010]作为上述方案的改进,所述任务执行条件包括:虚拟资源集的阻塞队列最大任务数量与阻塞队列运行中任务数量的差值大于等于第一阈值;虚拟资源集的总CPU核数与阻塞队列已使用CPU核数的差值大于等于当前历遍到的任务的申请CPU核数;虚拟资源集的总内存与阻塞队列已使用内存的差值大于等于当前历遍到的任务的申请内存。
[0011]作为上述方案的改进,所述判断当前遍历到的任务是否满足预设的任务执行条件,包括:判断当前历遍到的任务对应的用户在所述阻塞队列运行中的任务数量是否超过对应用户的用户任务限制数量;若是,判断当前遍历到的任务是否满足预设的任务执行条件;若否,将当前遍历到的任务放回所述阻塞队列。
[0012]作为上述方案的改进,所述调用指定的业务线对应的虚拟资源集的资源执行当前遍历到的任务,包括:采用当前遍历到的任务的申请CPU核数、申请内存执行对应的任务,并扣除所述虚拟资源集的队列资源额度和用户个人额度。
[0013]作为上述方案的改进,所述任务调度方法还包括:对多个所述虚拟资源集对应的业务线各分配一个令牌,以使得所述用户将任务提交到指定的业务线上时,在提交任务的http接口中增加所述令牌。
[0014]作为上述方案的改进,所述任务调度方法还包括:判断当前待提交的任务是否满足任意一个任务异常条件;其中,所述任务异常条件包括:任务的申请CPU核数大于所述总CPU核数且任务的申请内存大于所述总内存、监控到任务在预设的时间段内不能完成递交;若是,则发出任务异常告警信息;若否,则将当前待提交的任务提交到指定的业务线上。
[0015]第二方面,本专利技术实施例提供了一种任务调度装置,包括:虚拟资源构建模块,用于根据业务需求构建多个虚拟资源集;其中,一个所述虚拟资源集对应一个用于执行所述业务需求所需的任务的业务线;任务接收模块,用于接收多个用户提交到指定的业务线上的任务,并添加到指定的业务线对应的虚拟资源集的阻塞队列中;任务优先级确定模块,用于获取多个所述用户的第一属性信息及对应任务的第二
属性信息,并根据多个所述用户的第一属性信息及对应任务的第二属性信息,确定所述阻塞队列中各个任务的优先级;任务执行模块,用于根据所述优先级、多个所述用户的第一属性信息、所述任务的第二属性信息以及指定的业务线对应虚拟资源集的配置信息,执行所述阻塞队列中的任务。
[0016]第三方面,本专利技术实施例提供了一种任务调度系统,包括:处理器;存储器,用于储存一个或多个计算机程序;当所述一个或多个计算机程序被所述处理器执行,使得所述处理器实现如第一方面中任意一项所述的任务调度方法。
[0017]第四方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面中任一所述的任务调度方法。
[0018]相对于现有技术,本专利技术实施例的有益效果在于:通过为每一个业务线申请一个虚拟资源集;将用户提交到指定的业务线上的任务添加到指定的业务线对应的虚拟资源集的阻塞队列中;然后基于用户的第一属性信息及对应任务的第二属性信息,确定所述阻塞队列中各个任务的优先级;并根据所述优先级、多个所述用户的第一属性信息、所述任务的第二属性信息以及指定的业务线对应虚拟资源集的配置信息,执行所述阻塞队列中的任务,从而可以提高任务调度的灵活性,减少任务阻塞的等待时间。
附图说明
[0019]为了更清楚地说明本专利技术的技术方案,下面将对实施方式中所占据要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:根据业务需求构建多个虚拟资源集;其中,一个所述虚拟资源集对应一个用于执行所述业务需求所需的任务的业务线;接收多个用户提交到指定的业务线上的任务,并添加到指定的业务线对应的虚拟资源集的阻塞队列中;获取多个所述用户的第一属性信息及对应任务的第二属性信息,并根据多个所述用户的第一属性信息及对应任务的第二属性信息,确定所述阻塞队列中各个任务的优先级;根据所述优先级、多个所述用户的第一属性信息、所述任务的第二属性信息以及指定的业务线对应虚拟资源集的配置信息,执行所述阻塞队列中的任务。2.如权利要求1所述的任务调度方法,其特征在于,所述根据所述优先级、多个所述用户的第一属性信息、所述任务的第二属性信息以及指定的业务线对应虚拟资源集的配置信息,执行所述阻塞队列中的任务,包括:按照所述优先级由高到低的顺序,遍历所述阻塞队列中的任务;根据多个所述用户的第一属性信息、所述任务的第二属性信息以及指定的业务线对应虚拟资源集的配置信息,判断当前遍历到的任务是否满足预设的任务执行条件;若是,调用指定的业务线对应的虚拟资源集的资源执行当前遍历到的任务;若否,将当前遍历到的任务放回所述阻塞队列。3.如权利要求2所述的任务调度方法,其特征在于,所述第一属性信息包括:对应用户的用户等级、用户任务限制数量;所述第二属性信息包括:对应任务的申请CPU核数、申请内存、任务优先度以及任务提交时间戳;所述配置信息包括:对应虚拟资源集的总CUP核数、总内存、阻塞队列最大任务数量。4.如权利要求3所述的任务调度方法,其特征在于,所述获取多个所述用户的第一属性信息及对应任务的第二属性信息,并根据多个所述用户的第一属性信息及对应任务的第二属性信息,确定所述阻塞队列中各个任务的优先级,包括:根据每个用户的所述用户等级及其提交的任务的任务优先度、任务提交时间戳,计算所述阻塞队列中对应任务的优先级。5.如权利要求3所述的任务调度方法,其特征在于,所述任务执行条件包括:虚拟资源集的阻塞队列最大任务数量与阻塞队列运行中任务数量的差值大于等于第一阈值;虚拟资源集的总CPU核数与阻塞队列已使用CPU核数的差值大于等于当前历遍到的任务的申请CPU核数;虚拟资源集的总内存与阻塞队列已使用内存的差值大于等于当前历遍到的任务的申请内存。6.如权利要求3所述的任务调度方法,其特征在于,所述判断当前...

【专利技术属性】
技术研发人员:苏淦胡嘉宏古嘉宏徐亚波李旭日
申请(专利权)人:广州数说故事信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1