本发明涉及任务调度,尤其涉及一种任务调度实现方法、系统及计算机可读介质。
背景技术:
1、kubernetes(简称k8s)是一种为容器服务而生的一个可移植、可扩展的容器编排管理工具,其本质上是一组服务器集群,可以在集群的每个节点上运行特定的程序,以对节点上的容器进行管理,目的是为了实现资源管理的自动化。任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程,有了任务调度即可解放更多的人力,而是由系统自动执行任务,并基于此形成了任务调度系统。
2、一般而言,kubernetes集群下的计算机集群中,对于实现任务调度的解决方案有两种:一种是通过第三方任务调度开源产品(例如,quartz,xxl-job,elastic-job等)实现任务调度;另一种是通过自行研发调度产品。然而第三方任务调度开源产品在开发时,由于用户业务系统的各有不一,而开源产品需要考虑不用的用户业务系统均被适应,进而需要考虑产品的通用性,因此开源产品仅能保证实现一些通常的功能,从而导致与不同用户业务系统的适配度欠缺,同时,用户也不能基于自身的业务系统所需要的功能对开源产品进行二次开发,从而存在扩展性不足的缺陷。而用户自行研发调度产品又会存在开发成本较高的问题,且任务调度的编排、分片、重试、数据清理等都需自行处理,存在运维成本较高的缺陷。
3、有鉴于此,有必要对现有技术中的任务调度方法予以改进,以解决上述问题。
技术实现思路
1、本发明的目的在于解决现有技术中通过第三方调度开源产品实现任务调度所存在的与用户业务系统适配度欠缺与扩展性不足的问题,以及通过自行研发调度产品实现任务调度所存在的开发与维护成本较高的问题。
2、为实现上述目的,第一方面,本发明提供了一种任务调度实现方法,响应于包含响应任务的访问请求,
3、包括:
4、对任务调度器配置调度参数集,由任务调度器响应于访问请求,基于调度参数集计算任务得分,根据任务得分确定任务于任务调度器的任务队列中的下发顺序,并配置任务对应的资源定义参数;
5、由所述任务调度器对任务执行监听操作,以监听任务对应的执行状态,并根据所述执行状态确定kubernetes集群的资源消耗与任务调度器中处于执行中的任务数量,于资源消耗与任务调度器中处于执行中的任务数量满足执行条件时,由任务调度器基于所述下发顺序向kubernetes集群下发任务,kubernetes集群根据资源定义参数生成job资源,基于kubernetes集群预配置的pod调度策略对job资源对应的pod执行调度,以执行任务。
6、作为本发明的进一步改进,在所述基于调度参数集计算任务得分之前,还包括:
7、对任务执行拆解操作,得到任务对应的多个子任务,并生成任务与子任务分别对应的任务对象,将所述任务对象存储至存储单元。
8、作为本发明的进一步改进,所述监听操作由任务调度器与任务之间建立长连接予以实现;
9、由所述任务调度器将任务对应的执行状态更新至存储单元。
10、作为本发明的进一步改进,所述调度参数集包括队列参数,所述队列参数包括调度队列长度和/或并发任务数量。
11、作为本发明的进一步改进,所述调度参数集还包括任务参数,所述任务参数包括任务优先级、任务平均执行时间以及任务复杂度中的一种或者任意几种组合。
12、作为本发明的进一步改进,所述资源消耗与任务调度器中处于执行中的任务数量满足执行条件具体为:
13、kubernetes集群所包含的各个节点的cpu使用率<70%,内存使用率<80%,磁盘使用率<70%,且任务调度器中处于执行中的任务数量<并发任务数量。
14、作为本发明的进一步改进,所述基于调度参数集计算任务得分由任务优先级得分、任务平均时间得分以及任务复杂度得分进行权重汇总予以实现,具体由如下公式计算:
15、任务得分=x*任务优先级得分+y*任务平均时间得分+z
16、*任务复杂度得分;
17、其中,x、y、z分别为任务优先级得分、任务平均时间得分以及任务复杂度得分的权重系数,且x+y+z=100%。
18、作为本发明的进一步改进,所述资源定义参数包括:需要完成的任务数量、并行执行任务数量、任务执行超时时间、任务重试次数、job完成后资源自动清理时间以及子任务索引号中的一种或者任意几种组合。
19、第二方面,本发明还提供了一种任务调度实现系统,包括:
20、一个或者多个处理器和存储装置;
21、所述存储装置耦接至所述一个或者多个处理器;
22、其中,所述存储装置存储被一个或者多个处理器执行的计算机程序指令,所述计算机程序指令执行如第一方面任一项所述的任务调度实现方法。
23、第三方面,本发明又提供了一种计算机可读介质,所述计算机可读介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行如第一方面中任一项所述的任务调度实现方法。
24、与现有技术相比,本发明的有益效果是:
25、通过自行配置调度参数集,基于调度参数集计算任务得分,根据任务得分确定任务于任务调度器的任务队列中的下发顺序,并配置任务对应的资源定义参数,由任务调度器对任务执行监听操作,以监听任务对应的执行状态,并根据执行状态确定kubernetes集群的资源消耗与任务调度器10中处于执行中的任务数量,于kubernetes集群的资源消耗与任务调度器10中处于执行中的任务数量满足执行条件时,由任务调度器基于下发顺序向kubernetes集群下发任务,以提高任务调度的精准实时;kubernetes集群根据资源定义参数生成job资源,基于kubernetes集群预配置的pod调度策略对job对应的pod执行调度,以执行任务,利用kubernetes集群的kube-scheduler组件实现pod调度,以实现了任务执行的稳定高效,并解决了现有技术中自行研发调度产品实现任务调度所存在的开发与维护成本较高的问题。
1.一种任务调度实现方法,响应于包含响应任务的访问请求,
2.根据权利要求1所述的任务调度实现方法,其特征在于,在所述基于调度参数集计算任务得分之前,还包括:
3.根据权利要求2所述的任务调度实现方法,其特征在于,所述监听操作由任务调度器与任务之间建立长连接予以实现;
4.根据权利要求1所述的任务调度实现方法,其特征在于,所述调度参数集包括队列参数,所述队列参数包括调度队列长度和/或并发任务数量。
5.根据权利要求4所述的任务调度实现方法,其特征在于,所述调度参数集还包括任务参数,所述任务参数包括任务优先级、任务平均执行时间以及任务复杂度中的一种或者任意几种组合。
6.根据权利要求1所述的任务调度实现方法,其特征在于,所述资源消耗与任务调度器中处于执行中的任务数量满足执行条件具体为:
7.根据权利要求5所述的任务调度实现方法,其特征在于,所述基于调度参数集计算任务得分由任务优先级得分、任务平均时间得分以及任务复杂度得分进行权重汇总予以实现,具体由如下公式计算:
8.根据权利要求1所述的任务调度实现方法,其特征在于,所述资源定义参数包括:需要完成的任务数量、并行执行任务数量、任务执行超时时间、任务重试次数、job完成后资源自动清理时间以及子任务索引号中的一种或者任意几种组合。
9.一种任务调度实现系统,其特征在于,包括:
10.一种计算机可读介质,其特征在于,所述计算机可读介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行如权利要求1至8中任一项所述的任务调度实现方法。