CN113204434B - 基于k8s的计划任务执行方法、装置及计算机设备 - Google Patents
基于k8s的计划任务执行方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN113204434B CN113204434B CN202110757630.3A CN202110757630A CN113204434B CN 113204434 B CN113204434 B CN 113204434B CN 202110757630 A CN202110757630 A CN 202110757630A CN 113204434 B CN113204434 B CN 113204434B
- Authority
- CN
- China
- Prior art keywords
- task
- planned
- node
- service
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于k8s的计划任务执行方法、装置及计算机设备,涉及信息技术领域,主要在于能够提高计划任务的执行效率,同时能够减轻服务器的负载。其中方法包括:接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。本发明主要适用于计划任务的分布式执行。
Description
技术领域
本发明涉及信息技术领域,尤其是涉及一种基于k8s的计划任务执行方法、装置及计算机设备。
背景技术
随着互联网技术的高速发展,各种网站不断增添新的服务功能,如订单服务、收藏服务、统计用户的积分服务等,上述服务功能通常会根据业务需求定期进行执行,如某网站每天24点统计用户的浏览量和用户的积分。
目前,在定期执行服务功能的过程中,通常将各个服务功能作为计划任务,利用linux执行这些计划任务。然而,这种计划任务的执行方式会在同一台服务器上依次执行每个计划任务,如果添加的计划任务过多,会导致服务器的负载过高,与此同时,如果服务器当前有未执行完的计划任务,下一计划任务虽然已到执行时间,但只能等待直到当前的计划任务执行完毕才能启动,从而会影响计划任务的执行效率。
发明内容
本发明提供了一种基于k8s的计划任务执行方法、装置及计算机设备,主要在于能够提高计划任务的执行效率,同时能够减轻服务器的负载。
根据本发明的第一个方面,提供一种基于k8s的计划任务执行方法,包括:
接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;
根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;
从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。
根据本发明的第二个方面,提供一种基于k8s的计划任务执行装置,包括:
接收单元,用于接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;
查询单元,用于根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;
执行单元,用于从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。
根据本发明的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;
根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;
从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。
根据本发明的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;
根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;
从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。
本发明提供的一种基于k8s的计划任务执行方法、装置及计算机设备,与目前在linux上执行计划任务的方式相比,本发明能够接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;并根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;与此同时,从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行,由此通过k8s能够将创建的计划任务分布式调度到不同的后端节点上执行,从而能够避免多个计划任务抢占系统资源,提高了计划任务的执行效率,同时也减轻了服务器的负载。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例提供的一种基于k8s的计划任务执行方法流程图;
图2示出了本发明实施例提供的另一种基于k8s的计划任务执行方法流程图;
图3示出了本发明实施例提供的一种基于k8s的计划任务执行装置的结构示意图;
图4示出了本发明实施例提供的另一种基于k8s的计划任务执行装置的结构示意图;
图5示出了本发明实施例提供的一种计算机设备的实体结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
目前,在定期执行服务功能的过程中,通常将各个服务功能作为计划任务,利用linux执行这些计划任务。然而,这种计划任务的执行方式会在同一台服务器上依次执行每个计划任务,如果添加的计划任务过多,会导致服务器的负载过高,与此同时,如果服务器当前有未执行完的计划任务,下一计划任务虽然已到执行时间,但只能等待直到当前的计划任务执行完毕才能启动,从而会影响计划任务的执行效率。
为了解决上述问题,本发明实施例提供了一种基于k8s的计划任务执行方法,如图1所示,所述方法包括:
101、接收计划任务的执行指令。
其中,所述执行指令包括所述计划任务的任务标识信息,任务标识信息具体可以为计划任务的编号或者名称。为了克服现有技术中利用linux处理计划任务进而导致计划任务执行效率低,且服务器负载过高的缺陷,本发明实施例利用k8s架构将多个计划任务分布式调度到不同的后端节点上执行,进而能够提高计划任务的执行效率,同时能够减轻服务器的负载。本发明实施例主要应用于将计划任务分布式调度到后端节点执行的场景。本发明实施例的执行主体为能够将计划任务分布式调度到后端节点执行的装置或者设备。
具体地,可以预先在调度中心添加计划任务,并指定添加的计划任务所对应的服务,例如,每天的24时统计某网站当天的用户浏览量,再比如,每隔12小时统计某购物网站的用户积分、当天的营业额,根据业务需求,确定需要定时执行的服务,并建立添加的计划任务与该服务之间的对应关系,如计划任务1对应订单服务,计划任务2对应用户积分服务,与此同时,还需要设定添加的每个计划任务对应的执行时间,如设定每隔6小时统计用户的订单总量,在添加完成计划任务后,可以在调度中心查看和修改添加的所有的计划任务。进一步地,当到达计划任务的执行时间时,调度中心会自动触发计划任务的执行指令,并将需要执行的计划任务分布式调度给相应的后端节点,由相应的后端节点执行该计划任务,由于服务所涉及的后端节点部署在多个服务器上,因此能够避免在同一台服务器运行计划任务,从而导致服务器负载过高。
102、根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点。
其中,在将服务部署到集群的过程中,会设定服务对应的后端节点,该后端节点具体可以指容器组pod,每个服务可以对应多个容器组,不同服务对应的容器组可以分布在不同的服务器上,例如,设定订单服务对应的后端节点为后端节点1、后端节点2和后端节点3,用户积分服务对应的后端节点为后端节点4、后端节点5和后端节点6,后端节点1和后端节点4部署在服务器a上,后端节点2和后端节点5部署在服务器b上,后端节点3和后端节点6部署在服务c上。
对于本发明实施例,当计划任务到定时执行时间时,可自动触发计划任务执行指令,调度中心根据该执行指令对应的任务标识信息,查询预设服务列表,该服务列表中记录用不同计划任务对应的服务,由此能够确定该计划任务对应的服务,进一步地,根据该计划任务对应的服务,通过k8s框架的服务发现机制能够确定集群中该服务所涉及的各个后端节点,例如,计划任务1对应订单服务,通过k8s的服务发现机制能够确定订单服务在集群中涉及后端节点1、后端节点2和后端节点3,由此能够确定可以在后端节点1、后端节点2或者后端节点3上执行该计划任务对应的服务。
103、从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。
其中,目标后端节点可以为计划任务所涉及的各个后端节点中的任意一个后端节点。对于本发明实施例,通过k8s的服务发现机制,能够确定计划任务对应的服务所涉及的各个后端节点对应的节点标识,从各个后端节点对应的节点标识中随机选择一个节点标识,作为目标节点标识,并将该目标节点标识对应的后端节点作为目标后端节点。进一步地,调度中心在确定计划任务对应的目标后端节点后,调用该目标后端节点的API接口,将执行计划任务的指令发送给目标后端节点,目标后端节点为pod容器组,pod容器组中的容器接收到该执行指令后,会创建一个子进程,执行该计划任务。例如,计划任务1对应的订单服务涉及后端节点1、后端节点2和后端节点3,如果k8s选择后端节点1作为目标后端节点,则调度中心会调用后端节点1对应的API接口,将该订单服务分布式调度到后端节点1中运行。由于各个服务所涉及的后端节点部署在多台服务器上,因此当多个计划任务对应的服务需要执行时,可以将服务分布式调度到相应的后端节点上执行,能够避免抢占服务器资源,进而能够提高计划任务的执行效率。
本发明实施例提供的一种基于k8s的计划任务执行方法,与目前在linux上执行计划任务的方式相比,本发明能够接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;并根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;与此同时,从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行,由此通过k8s能够将创建的计划任务分布式调度到不同的后端节点上执行,从而能够避免多个计划任务抢占系统资源,提高了计划任务的执行效率,同时也减轻了服务器的负载。
进一步的,为了更好的说明上述对计划任务的分布式调度过程,作为对上述实施例的细化和扩展,本发明实施例提供了另一种基于k8s的计划任务执行方法,如图2所示,所述方法包括:
201、接收计划任务的执行指令。
其中,所述执行指令包括所述计划任务的任务标识信息,任务标识信息具体可以为计划任务的编号或者名称。对于本发明实施例,在执行计划任务之前,需要将各个服务对应的后端节点添加到集群中,同时在调度中心添加计划任务,并指定计划任务对应的服务和运行时间,基于此,在所述接收计划任务的执行指令之前,所述方法还包括:将不同服务部署到集群中相应后端节点上,生成预设后端节点列表;在调度中心添加计划任务;设定所述计划任务对应的服务和执行时间,并设定所述服务对应的运行脚本。
具体地,首先根据业务需求确定需要定时运行的服务,并将该服务对应后端节点添加到k8s集群中,例如,在k8s集群中添加订单服务对应的后端节点1、后端节点2和后端节点3,同时在在k8s集群中添加用户积分服务对应的后端节点4、后端节点5和后端节点6。之后在调度中心添加计划任务,如添加计划任务1,并将计划任务1指定订单服务,设定每隔12小时统计用户的订单量,同时设定订单服务对应的运行脚本,之后添加计划任务2,并将计划2指定用户积分服务,设定每天24点统计用户的积分,同时设定积分服务对应的运行脚本,在添加完计划任务并完成相应的设定后,计划任务会按照设定的时间被分布式调度到相应的后端节点上运行。
202、根据所述任务标识信息,确定所述计划任务对应的实例数量,并统计集群中正在运行所述计划任务的后端节点数量。
对于本发明实施例,在调度中心添加计划任务的同时,还需要设定每个计划任务对应的实例数量,该实例数量代表该计划任务可在集群中运行的最多后端节点数量,例如,在调度中心设定计划任务对应订单服务,订单服务所涉及的后端节点包括后端节点1、后端节点2和后端节点3,同时设定集群中最多可出现3个后端节点同时运行计划任务1,即计划任务1对应的实例数量为3,如果当前到达计划任务1对应的执行时间,根据该计划任务1对应的任务标识信息,可以确定计划任务1对应的实例数量为3,同时需要统计集群中正在运行计划任务1的后端节点数量,通过将统计的后端节点数量与计划任务1对应的实例数量进行对比,根据对比结果能够确定当前是否可以执行计划任务1。
203、若所述后端节点数量大于或者等于所述实例数量,则不执行所述计划任务,直至正在运行所述计划任务的后端节点数量小于所述实例数量,执行所述计划任务。
对于本发明实施例,有些计划任务的执行时间较长,在该计划任务下次执行时可能本次还没有执行完成,此时便会出现集群的后端节点中有多个相同的计划任务在执行的情况,通过设定计划任务对应的实例数量,并将统计的运行该计划任务的后端节点数量与实例数量进行对比,能够限制计划任务的再次运行时间,避免集群中有较多的相同计划任务同时运行。
例如,设定计划任务2对应的用户积分服务每5分钟运行一次,同时设定计划任务2对应的实例数量为3,用户积分服务所涉及的后端节点包括后端节点1、后端点2、后端节点3和后端节点4,当前到达计划任务2的运行时间,在执行计划任务2之前,需要监测集群中正在运行计划任务2的后端节点数量,如果监测到此时后端节点1、后端节点2和后端节点3均在运行计划任务2,即存在3个正在运行计划任务2的后端节点,由于当前正在运行任务2的后端节点数量等于计划任务2对应的实例数量3,因此虽然已经到达计划任务2的执行时间,但是暂不执行,直至后端节点1、后端节点2和后端节点3中的某一个后端节点完成运行,再随机选择一个后端节点执行计划任务2。
204、若所述后端节点数量小于所述实例数量,则根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点。
对于本发明实施例,如果正在运行计划任务的后端节点数量小于计划任务对应的实例数量,则说明此时集群中正在运行计划任务的后端节点数量并没有超过该计划任务的实例上限,可以按时执行该计划任务。具体执行该计划任务时,需要先查询后端节点列表确定该计划任务所涉及的后端服务节点,基于此,步骤204具体包括:根据所述任务标识信息,确定所述计划任务对应的服务;根据所述服务对应的服务标识信息,查询预设后端节点列表,确定所述服务对应的多个后端节点,所述预设后端节点列表中记录有不同服务对应的多个后端节点。
对于本发明实施例,当达到计划任务的执行时间时,调度中心根据该计划任务的标识信息查询预设服务列表,能够确定计划任务所指定的服务,进一步地,通过查询预设后端节点列表,能够确定该服务在集群中所涉及的各个后端节点,以便从多个后端节点中选择目标后端节点执行该计划任务。
205、从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。
对于本发明实施例,为了将计划任务调度到目标后端节点上执行,步骤205具体包括:根据所述多个后端节点分别对应的节点标识,随机生成目标节点标识,并将所述目标节点标识对应的后端节点作为目标后端节点;建立所述计划任务与所述目标后端节点的连接,并将所述连接投入至连接池中;基于所述计划任务与所述目标后端节点的连接,将所述计划任务调度到所述目标后端节点上进行执行。
例如,确定计划任务1对应的后端节点包括后端节点1、后端节点2、后端节点3和后端节点4,后端节点4正在运行该计划任务1,计划任务1对应的实例数量为2,由于正在运行的后端节点数量没有超过实例数量,因此按时执行计划任务,该计划任务1虽然涉及4个后端节点,但是后端节点4已经在运行计划任务1,因此根据后端节点1、后端节点2和后端节点3分别对应的节点标识,随机生成一个目标节点标识,并将该目标节点标识对应的后端节点最为目标后端节点,如确定目标后端节点为后端节点2,则调度中心会调用后端节点2对应的API接口,并建立计划任务1与后端节点2之间的连接,并将该连接投入至连接池中,以便后续直接从连接池中调用计划任务与后端节点之间的连接,进一步地,基于建立的连接,将该计划任务1分布式调度到后端节点2上进行执行。
在具体应用场景中,为了提高计划任务的调度效率,避免重复创建计划任务与后端节点之间的连接,可以直接在连接池中调用计划任务与相应后端节点中的连接,基于此,在所述根据所述多个后端节点分别对应的节点标识,随机生成目标节点标识,并将所述目标节点标识对应的后端节点作为目标后端节点,所述方法还包括:判断所述连接池中是否存在所述计划任务与所述目标后端节点的连接;若存在所述计划任务与所述目标后端节点的连接,则直接调用所述连接,将所述计划任务调度到所述目标后端节点上执行。
例如,经过多次执行计划任务1,连接池中已经存在计划任务1分别与后端节点1、后端节点2和后端节点3之间的连接,当再次到计划任务1的执行时间时,k8s如果随机选择后端节点2,则可以直接从连接池中调用计划任务1与后端节点2之间的连接,而不必重新创建,基于该连接,将计划任务1分布式调度到后端节点2中执行。
在具体应用场景中,如果服务对应的功能代码发生更新,可以在集群中重新添加更新后的服务对应的新增后端节点,并建立更新后的服务与新增后端服务节点之间的连接,基于此,若所述计划任务对应的服务为更新后的服务,则切断连接连接池中所述更新后的服务分别与所述多个后端节点的连接,并建立所述更新后的服务与新增后端节点的连接;基于所述更新后的服务分别与所述新增后端节点的连接,将所述计划任务调度到所述新增后端节点中执行。
例如,计划任务3对应的订单服务所涉及的后端节点包括后端节点1、后端节点2和后端节点3,由于订单服务发生更新,因此需要重新在集群中添加更新后的订单服务对应的新增后端节点4、新增后端节点5和新增后端节点6,进一步地,切断连接池中计划任务分别与后端节点1、后端节点2和后端节点3之间的连接,当再次执行计划任务3时,能够从新增后端节点4、新增后端节点5和新增后端节点6中随机选择一个新增后端节点,并建立计划任务3与新增后端节点之间的连接,并将新创建的连接投入至连接池中,进而实现对连接池的更新,以便基于新创建的连接,将更新后的订单服务调度到新增后端节点中运行。
本发明实施例提供的另一种基于k8s的计划任务执行方法,与目前在linux上执行计划任务的方式相比,本发明能够接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;并根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;与此同时,从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行,由此通过k8s能够将创建的计划任务分布式调度到不同的后端节点上执行,从而能够避免多个计划任务抢占系统资源,提高了计划任务的执行效率,同时也减轻了服务器的负载。
进一步地,作为图1的具体实现,本发明实施例提供了一种基于k8s的计划任务执行装置,如图3所示,所述装置包括:接收单元31、查询单元32和执行单元33。
所述接收单元31,可以用于接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息。所述接收单元31是本装置中接收计划任务的执行指令的主要功能模块。
所述查询单元32,可以用于根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点。所述查询单元32是本装置中根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点的主要功能模块,也是核心模块。
所述执行单元33,可以用于从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。所述执行单元33是本装置中从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行的主要功能模块,也是核心模块。
在具体应用场景中,为了确定所述计划任务所涉及的多个后端节点,如图4所示,所述查询单元32,包括:确定模块321和查询模块322。
所述确定模块321,可以用于根据所述任务标识信息,确定所述计划任务对应的服务。
所述查询模块322,可以用于根据所述服务对应的服务标识信息,查询预设后端节点列表,确定所述服务对应的多个后端节点,所述预设后端节点列表中记录有不同服务对应的多个后端节点。
进一步地,当计划任务对应的服务更新时,需要更新连接池中的连接,基于此,所述查询单元32还包括:建立模块323和调度模块324。
所述建立模块323,可以用于若所述计划任务对应的服务为更新后的服务,则切断连接连接池中所述更新后的服务分别与所述多个后端节点的连接,并建立所述更新后的服务与新增后端节点的连接。
所述调度模块324,可以用于基于所述更新后的服务分别与所述新增后端节点的连接,将所述计划任务调度到所述新增后端节点中执行。
在具体应用场景中,为了将所述计划任务调度到所述目标后端节点上进行执行,所述执行单元33,包括:生成模块331、建立模块332和调度模块333。
所述生成模块331,可以用于根据所述多个后端节点分别对应的节点标识,随机生成目标节点标识,并将所述目标节点标识对应的后端节点作为目标后端节点。
所述建立模块332,可以用于建立所述计划任务与所述目标后端节点的连接,并将所述连接投入至连接池中。
所述调度模块333,可以用于基于所述计划任务与所述目标后端节点的连接,将所述计划任务调度到所述目标后端节点上进行执行。
进一步地,为了直接调用连接池中的连接,所述执行单元33还包括:判断模块334。
所述判断模块334,可以用于判断所述连接池中是否存在所述计划任务与所述目标后端节点的连接。
所述调度模块333,还可以用于若存在所述计划任务与所述目标后端节点的连接,则直接调用所述连接,将所述计划任务调度到所述目标后端节点上执行。
进一步地,为了判定正在运行计划任务的后端节点数量是否超过实例上限,所述装置还包括:确定单元34和统计单元35。
所述确定单元34,可以用于根据所述任务标识信息,确定所述计划任务对应的实例数量。
所述统计单元35,可以用于统计集群中正在运行所述计划任务的后端节点数量。
所述执行单元33,还可以用于若所述后端节点数量大于或者等于所述实例数量,则不执行所述计划任务,直至正在运行所述计划任务的后端节点数量小于所述实例数量,执行所述计划任务。
进一步地,为了在调度中心添加计划任务,所述装置还包括:部署单元36、添加单元37和设定单元38。
所述部署单元36,可以用于将不同服务部署到集群中相应后端节点上,生成预设后端节点列表。
所述添加单元37,可以用于在调度中心添加计划任务。
所述设定单元38,可以用于设定所述计划任务对应的服务和执行时间,并设定所述服务对应的运行脚本。
需要说明的是,本发明实施例提供的一种基于k8s的计划任务执行装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。
基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。
基于上述如图1所示方法和如图3所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图5所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上所述处理器41执行所述程序时实现以下步骤:接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行。
通过本发明的技术方案,本发明能够接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;并根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;与此同时,从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行,由此通过k8s能够将创建的计划任务分布式调度到不同的后端节点上执行,从而能够避免多个计划任务抢占系统资源,提高了计划任务的执行效率,同时也减轻了服务器的负载。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (8)
1.一种基于k8s的计划任务执行方法,其特征在于,包括:
接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;
根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;
从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行;
其中,在所述接收计划任务的执行指令之前,所述方法还包括:
将不同服务部署到集群中相应后端节点上,生成预设后端节点列表;
在调度中心添加计划任务;
设定所述计划任务对应的服务和执行时间,并设定所述服务对应的运行脚本;
在所述接收计划任务的执行指令之后,所述方法还包括:
根据所述任务标识信息,确定所述计划任务对应的实例数量;
统计集群中正在运行所述计划任务的后端节点数量;
若所述后端节点数量大于或者等于所述实例数量,则不执行所述计划任务,直至正在运行所述计划任务的后端节点数量小于所述实例数量,执行所述计划任务。
2.根据权利要求1所述的方法,所述根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点,包括:
根据所述任务标识信息,确定所述计划任务对应的服务;
根据所述服务对应的服务标识信息,查询预设后端节点列表,确定所述服务对应的多个后端节点,所述预设后端节点列表中记录有不同服务对应的多个后端节点。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述任务标识信息,确定所述计划任务对应的服务之后,所述方法还包括:
若所述计划任务对应的服务为更新后的服务,则切断连接池中所述更新后的服务分别与所述多个后端节点的连接,并建立所述更新后的服务与新增后端节点的连接;
基于所述更新后的服务分别与所述新增后端节点的连接,将所述计划任务调度到所述新增后端节点中执行。
4.根据权利要求1所述的方法,其特征在于,所述从所述多个后端节点中确定所述计划服务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行,包括:
根据所述多个后端节点分别对应的节点标识,随机生成目标节点标识,并将所述目标节点标识对应的后端节点作为目标后端节点;
建立所述计划任务与所述目标后端节点的连接,并将所述连接投入至连接池中;
基于所述计划任务与所述目标后端节点的连接,将所述计划任务调度到所述目标后端节点上进行执行。
5.根据权利要求4所述的方法,其特征在于,在所述根据所述多个后端节点分别对应的节点标识,随机生成目标节点标识,并将所述目标节点标识对应的后端节点作为目标后端节点之后,所述方法还包括:
判断所述连接池中是否存在所述计划任务与所述目标后端节点的连接;
若存在所述计划任务与所述目标后端节点的连接,则直接调用所述连接,将所述计划任务调度到所述目标后端节点上执行。
6.一种基于k8s的计划任务执行装置,其特征在于,包括:
接收单元,用于接收计划任务的执行指令,所述执行指令包括所述计划任务的任务标识信息;
查询单元,用于根据所述任务标识信息,利用k8s的服务发现机制查询所述计划任务所涉及的多个后端节点;
执行单元,用于从所述多个后端节点中确定所述计划任务对应的目标后端节点,并将所述计划任务调度到所述目标后端节点上进行执行;
其中,所述装置还包括:部署单元、添加单元和设定单元,
所述部署单元,用于将不同服务部署到集群中相应后端节点上,生成预设后端节点列表;
所述添加单元,用于在调度中心添加计划任务;
所述设定单元,用于设定所述计划任务对应的服务和执行时间,并设定所述服务对应的运行脚本;
所述装置还包括:确定单元和统计单元;
所述确定单元,用于根据所述任务标识信息,确定所述计划任务对应的实例数量;
所述统计单元,用于统计集群中正在运行所述计划任务的后端节点数量;
所述执行单元,还用于若所述后端节点数量大于或者等于所述实例数量,则不执行所述计划任务,直至正在运行所述计划任务的后端节点数量小于所述实例数量,执行所述计划任务。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110757630.3A CN113204434B (zh) | 2021-07-05 | 2021-07-05 | 基于k8s的计划任务执行方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110757630.3A CN113204434B (zh) | 2021-07-05 | 2021-07-05 | 基于k8s的计划任务执行方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113204434A CN113204434A (zh) | 2021-08-03 |
CN113204434B true CN113204434B (zh) | 2021-09-21 |
Family
ID=77022776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110757630.3A Active CN113204434B (zh) | 2021-07-05 | 2021-07-05 | 基于k8s的计划任务执行方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113204434B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800070A (zh) * | 2019-01-02 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 任务处理方法和系统 |
CN110427249A (zh) * | 2019-07-26 | 2019-11-08 | 重庆紫光华山智安科技有限公司 | 任务分配方法、pod初始化方法及相关装置 |
CN111614729A (zh) * | 2020-04-28 | 2020-09-01 | 北京金山云网络技术有限公司 | 对kubernetes容器集群的控制方法、装置及电子设备 |
CN111866187A (zh) * | 2020-06-30 | 2020-10-30 | 中科院计算所西部高等技术研究院 | 分布式深度学习推理云平台任务调度方法 |
CN112835695A (zh) * | 2021-01-28 | 2021-05-25 | 北京市商汤科技开发有限公司 | Pod间通信的方法和分布式计算系统 |
CN112925519A (zh) * | 2021-03-29 | 2021-06-08 | 建信金融科技有限责任公司 | 一种工作流创建方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255908B2 (en) * | 2007-12-19 | 2012-08-28 | Nokia Corporation | Managing tasks in a distributed system |
US10514951B2 (en) * | 2017-05-04 | 2019-12-24 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery |
-
2021
- 2021-07-05 CN CN202110757630.3A patent/CN113204434B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800070A (zh) * | 2019-01-02 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 任务处理方法和系统 |
CN110427249A (zh) * | 2019-07-26 | 2019-11-08 | 重庆紫光华山智安科技有限公司 | 任务分配方法、pod初始化方法及相关装置 |
CN111614729A (zh) * | 2020-04-28 | 2020-09-01 | 北京金山云网络技术有限公司 | 对kubernetes容器集群的控制方法、装置及电子设备 |
CN111866187A (zh) * | 2020-06-30 | 2020-10-30 | 中科院计算所西部高等技术研究院 | 分布式深度学习推理云平台任务调度方法 |
CN112835695A (zh) * | 2021-01-28 | 2021-05-25 | 北京市商汤科技开发有限公司 | Pod间通信的方法和分布式计算系统 |
CN112925519A (zh) * | 2021-03-29 | 2021-06-08 | 建信金融科技有限责任公司 | 一种工作流创建方法和装置 |
Non-Patent Citations (2)
Title |
---|
k8s服务发现和负载均衡(转);devilwind;《https://www.cnblogs.com/devilwind/p/8881148.html》;20180419;1-2页 * |
Kubernetes中的Job和CronJob,批量任务执行;openthings;《https://my.oschina.net/u/2306127/blog/1784978》;20180326;1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113204434A (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110290180B (zh) | 分布式任务调度方法、装置、计算机设备和存储介质 | |
CN110825535B (zh) | 一种作业调度的方法和系统 | |
CN103150213B (zh) | 负载平衡方法和装置 | |
US8185624B2 (en) | Efficient on-demand provisioning of servers for specific software sets | |
CN110096353A (zh) | 任务调度方法及装置 | |
CN114756347B (zh) | 基于集群的服务器资源调度方法、装置、云平台及介质 | |
CN109766172B (zh) | 一种异步任务调度方法以及装置 | |
CN110071965B (zh) | 一种基于云平台的数据中心管理系统 | |
CN105760240A (zh) | 分布式任务处理方法及装置 | |
CN114615340B (zh) | 一种请求处理方法、装置、计算机设备和存储装置 | |
CN107370808B (zh) | 一种用于对大数据任务进行分布式处理的方法 | |
CN111913784A (zh) | 任务调度方法及装置、网元、存储介质 | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
CN111541762A (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN112698929B (zh) | 一种信息采集方法及装置 | |
CN111258726A (zh) | 任务调度方法和装置 | |
CN112433830A (zh) | 一种基于ZooKeeper的分布式任务调度方法、系统及存储介质 | |
US20200310828A1 (en) | Method, function manager and arrangement for handling function calls | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN107463390B (zh) | 一种软件升级方法及升级服务器 | |
CN113204434B (zh) | 基于k8s的计划任务执行方法、装置及计算机设备 | |
CN112035579B (zh) | 图管理、数据存储、数据查询方法、装置及存储介质 | |
CN110780869A (zh) | 一种分布式批量调度 | |
CN117873666A (zh) | 任务调度方法、芯片、电子设备及可读存储介质 | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |