一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

定时任务运行方法、装置以及计算机设备与流程

2022-02-19 14:11:46 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其是涉及一种定时任务运行方法、装置以及计算机设备。


背景技术:

2.目前,定时任务是互联网业务服务端经常需要应用到的功能,如电商业务平台需要定时处理未处理的订单、统计任务也需要在固定每天凌晨统计前一天的数据等。
3.在linux操作系统的服务端,定时任务通常以“*****”的形式表示,各个“*”分别代表该定时任务运行的时间,如分钟、小时、每月的天数、月份以及每周的天数等用于表征时间的特征,其中,若上述定时任务的以“*”进行表示,则代表该时间特征可采用任意数值,如“4 5***”表示每天凌晨05点04分都需要开始运行该定时任务,“*****”表示该定时任务每分钟运行一次。
4.但当前的定时任务,调度容器的流程较长,加长了定时任务的启动时间。


技术实现要素:

5.本技术的目的在于提供一种定时任务运行方法、装置以及计算机设备,通过容器在相应时间自运行定时任务,缓解定时任务启动时间较长的技术问题。
6.第一方面,本技术实施例提供了一种定时任务运行方法,所述方法包括:
7.接收集群管理系统发送的第一定时任务,其中,所述第一定时任务中配置预设启动时间;
8.向服务器请求获取第一标记,在接收所述第一标记的情况下,于所述预设启动时间运行所述第一定时任务。
9.在一个可能的实现中,定时任务运行方法,所述方法还包括:
10.当所述第一定时任务的运行时间达到预设时长时,终止所述第一定时任务的运行,并释放所述第一标记,以使第二容器从所述服务器请求获取第二标记,并基于所述第二标记运行第二定时任务,其中,所述集群管理系统按照预设时间间隔创建或调用容器,以使所述第二容器在当前第一容器的定时任务运行终止之前产生。
11.在一个可能的实现中,所述第一定时任务中还配置版本信息和所属应用版本信息,向服务器请求获取第一标记的步骤包括:
12.向所述服务器提交请求信息,以使所述服务器,识别当前第一容器的版本与第一定时任务的版本信息是否一致;所述请求信息包括当前容器的版本id、所述第一定时任务对应的版本信息以及所述第一定时任务所属应用版本信息;
13.若一致,则获取所述服务器下发的第一标记。
14.在一个可能的实现中,所述第一定时任务为所述服务器按照预设条件在所述集群管理系统创建生成的。
15.在一个可能的实现中,向服务器请求获取第一标记的步骤,还包括:
16.按照预设时间间隔向所述服务器请求更新所述第一标记。
17.在一个可能的实现中,按照预设时间间隔向所述服务器请求更新所述第一标记的步骤,包括:
18.向所述服务器提交所述请求信息,以使所述服务器,识别当前第一容器的版本与第一定时任务的版本信息是否一致;
19.若一致,则根据所述服务器下发的标记,更新所述第一标记;
20.若不一致,则终止运行所述第一定时任务,以使第三容器启动运行相应的定时任务。
21.在一个可能的实现中,若不一致,则终止运行所述第一定时任务,以使第三容器启动运行相应的定时任务的步骤,包括:
22.若不一致,则终止运行所述第一定时任务,以使第三容器启动执行新配置定时任务,所述第三容器为所述服务器在所述集群管理系统以所述新配置定时任务为模板创建的临时容器。
23.在一个可能的实现中,向服务器请求获取第一标记的步骤还包括:
24.若不一致,则按照预设时间间隔重新执行向服务器请求获取第一标记的步骤。
25.在一个可能的实现中,在接收所述第一标记的情况下,于所述预设启动时间运行所述第一定时任务的步骤,包括:
26.在接收所述第一标记的情况下,添加第一定时任务中的配置命令;
27.在所述预设启动时间根据所述配置命令运行所述第一定时任务。
28.在一个可能的实现中,若不一致,则终止运行所述第一定时任务,以使第三容器启动运行相应的定时任务的步骤,还包括:
29.若不一致,则删除第一定时任务中添加的所述配置命令,并终止运行所述第一定时任务,以使第三容器启动运行相应的定时任务。
30.在一个可能的实现中,向服务器请求获取第一标记的步骤还包括:
31.向服务器请求获取第一标记,以使所述服务器判断所述第一标记的更新时间与预设更新时间的间隔是否超过阈值;若超过,则所述第一标记过期;若未超过,则判断所述第一标记是否已被获取;若未被获取,则下发第一标记。
32.在一个可能的实现中,向服务器请求获取第一标记的步骤还包括:
33.向服务器请求获取第一标记,以使所述服务器根据容器id与请求获取第一标记的容器id是否一致,判断所述第一标记是否被获取;若一致,则未被获取,将定时任务的容器id设置为请求获取第一标记的容器id,并设置所述第一标记的更新时间为当前时间。
34.第二方面,提供了一种定时任务运行装置,包括:
35.接收模块,用于接收集群管理系统发送的第一定时任务,其中,所述第一定时任务中配置预设启动时间;
36.运行模块,向服务器请求获取第一标记,在接收所述第一标记的情况下,于所述预设启动时间运行所述第一定时任务。
37.第三方面,本技术实施例又提供了一种计算机设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的第一方面所述方法。
38.第四方面,本技术实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面所述方法。
39.本技术实施例带来了以下有益效果:
40.本技术实施例提供的一种定时任务运行方法、装置和计算机设备,能够缓解定时任务启动时间较长的技术问题。
41.本方案中,由于每次定时任务运行,集群管理系统均需要调度相应容器,使得定时任务的启动运行时间较长。容器通过接收集群管理系统创建的配置有预设启动时间的定时任务,集群管理系统可以预先配置,容器根据该预设启动时间自动运行定时任务,缩短定时任务启动运行时间。
42.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
43.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1示出了一种传统定时任务运行方法的多端交互示意图;
45.图2示出了本技术实施例提供的一种定时任务运行方法流程示意图;
46.图3示出了本技术实施例提供的一种定时任务运行方法的多端交互示意图;
47.图4为本技术实施例提供的一种定时任务运行方法的容器切换示意图;
48.图5示出了本技术实施例提供另一种定时任务运行方法的容器切换示意图;
49.图6示出了本技术实施例提供一种基于容器端的定时任务运行方法流程示意图;
50.图7示出了本技术实施例提供一种基于服务器端的定时任务运行方法流程示意图;
51.图8为本技术实施例提供的一种定时任务运行装置的结构示意图;
52.图9示出了本技术实施例所提供的一种计算机设备的结构示意图。
具体实施方式
53.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.本技术实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
55.分布式的集群管理系统kubernetes是用于管理云平台中多个主机上的容器化的
应用,kubernetes的目标是让部署容器化的应用简单并且高效,在每个节点上都要运行一个工作程序对容器进行生命周期的管理,这个工作程序就是kubelet。简单地说,kubelet程序的主要功能就是定时从某个地方获取节点上容器的期望状态,如运行什么容器、运行的副本数量、网络或者存储如何配置等等,并调用对应的容器平台接口达到这个状态。
56.kubernetes是定时任务的一个比较流行的实现方案,如图1所示,使用kubernetes运行定时任务的流程如下:
57.管理定时任务的服务器,在kubernetes上创建预设调度时间的定时任务cronjob,当到达定时任务的调度时间,kubernetes中的定时任务控制器cronjob controller检查到有定时任务需要运行,创建该定时任务cronjob对应的job,并使调度程序scheduler为job调度适合的目标服务器,该目标服务器上的kubelet程序负责启动容器,容器启动后,直接运行定时任务。
58.上述定时任务的容器调度流程步骤较多、较为繁琐。对于需要高频率运行的定时任务来说,高频次启动容器,会使cpu消耗过多。在实际应用中,如果一台宿主机中需要运行多个高频运行的定时任务,那么kubelet程序同一时间可能需要创建几十个以上的容器,这会造成宿主机的cpu资源非常紧张,使非业务部分消耗的资源过多,从而也大大加长了定时任务的启动时间。
59.基于此,本技术实施例提供了一种定时任务运行方法、装置和计算机设备,通过该方法可以缓解定时任务启动时间较长的技术问题。
60.下面结合附图对本技术实施例进行进一步地介绍。
61.图2为本技术实施例提供的一种定时任务运行方法的流程示意图。其中,该方法应用于第一容器。如图2所示,该方法包括:
62.步骤s110,接收集群管理系统发送的第一定时任务,其中,第一定时任务中配置预设启动时间。
63.其中,第一容器从集群管理系统接收到第一定时任务,该第一定时任务是在预定时间运行的任务,该运行时间被配置在第一定时任务中,即预设启动时间。
64.例如,第一容器接收到第一定时任务a,其中该第一定时任务a配置预设启动时间为早8点,则该第一定时任务a会在早8点启动运行。
65.步骤s120,向服务器请求获取第一标记,在接收第一标记的情况下,于预设启动时间运行该第一定时任务。
66.其中,该第一标记用于表征服务器对第一容器发送的请求验证通过。第一标记token是容器运行该第一定时任务的凭据,热容器需先向服务器master申请第一标记成功才能运行第一定时任务。第一容器在已获取到第一标记的情况下,再运行第一定时任务。
67.需要说明的是,若此时未成功获得第一标记,则此时容器可能处于启动状态,但其对应的定时任务并未运行。其中,该服务器master为管理定时任务的服务器,负责向集群管理系统kubernetes创建定时任务cronjob以及向容器下发第一标记token。本发明实施例的运行方式基于集群管理系统的定时任务功能模块之上,但对于具有类似功能的服务框架也同样适用。
68.在实际应用的优选实施例中,容器通过接收集群管理系统创建的配置有预设启动时间的定时任务,集群管理系统可以预先配置,容器根据该预设启动时间自动运行定时任
务,避免每次定时任务运行,集群管理系统均需要调度相应容器,以使该容器才能运行定时任务,进而使得定时任务的启动运行时间较长的问题。
69.下面对上述步骤进行详细介绍。
70.在一些实施例中,可以预先创建定时任务,以使相应容器在任务启动运行之前,已经接收到相应的定时任务,调度容器的步骤流程在任务启动运行之前完成,保证定时任务启动时间较短。作为一个示例,定时任务可为服务器按照预设条件在集群管理系统创建生成的。其中,预设条件可包括达到特定的时间间隔或特定时间点。
71.需要说明的是,提前启动的容器在运行定时任务时,相比于在集群管理系统kubernetes启动的定时任务,节省了集群管理系统调度及创建容器的过程,启动流程缩短为容器内的定时任务crond进程直接运行命令执行定时任务。由于此种定时任务cronjob能够自动在预设时间运行,将集群管理系统创建容器的频率从可能的每两分钟甚至每分钟创建一次改成每小时创建一次,且可提前进行创建和调度,使得集群管理系统无需大量高频创建容器,进而实现节省资源的目的,解决大量高频定时任务同时运行时,启动容器消耗服务器资源过多的问题。
72.在一些实施例中,集群管理系统每预设时间间隔就调用或创建一个容器并发送给该容器一个定时任务。若该预设时间间隔为1小时,根据前述实施例中所述,则集群管理系统可能在7点调用第一容器,并将配置有其任务启动时间的第一定时任务发送给第一容器,当经过预设时间间隔1小时,达到8点时,集群管理系统创建或调用第二容器,并将配置有该第二容器任务启动时间的第二定时任务发送给第二容器,以具体实现降低集群管理系统创建容器的频率,节省资源的目的。
73.在一些实施例中,第一容器在运行一段时间后(如一小时零五分后,在8点05分)会自动终止其运行,由新启动的热容器继续运行下一阶段的定时任务,以避免单个容器长期运行多次定时任务导致的缓存或文件积累过多,可以通过冗余切换容器方式,以保证对于同一个定时任务同一时刻只有一个容器运行。作为一个示例,上述实施例,还可包括如下步骤:
74.步骤1.1),当第一定时任务的运行时间达到预设时长时,终止第一定时任务的运行,并释放第一标记,以使第二容器从服务器请求获取第二标记,并基于第二标记运行第二定时任务,其中,集群管理系统按照预设时间间隔创建或调用容器,以使第二容器在当前第一容器的定时任务运行终止之前产生。
75.需要说明的是,在切换容器的时候,本发明实施例采取冗余运行的策略,运行下一阶段的第二容器会在当前正在运行的第一容器终止运行前提前(如提前5分钟,8点时)启动。即下一阶段的第二容器在当前阶段的第一容器任务终止之前被集群管理系统创建或调用,被创建或调用的第二容器会按照预设时间间隔持续向服务器请求获取第二标记,直至成功获取。可以理解的是,该容器产生的预设时间间隔短于每个当前容器运行任务的预设时长即可,该预设时间间隔和预设时长可分别由集群管理系统以及服务器进行设置。
76.由于第二容器在启动定时任务crond进程前需要从服务器获取到第二标记,所以下一阶段的第二容器在启动后不会马上启动定时任务crond进程运行定时任务,而是会等待当前阶段的第一容器释放第一标记以后才会启动定时任务crond进程开始运行定时任务,如图4所示,进而保证同一个定时任务同一时刻只有一个容器运行。
77.在一些实施例中,第一定时任务中还可配置有版本信息和所属应用版本信息,以使服务器进行基于上述版本信息进行识别,保证标记下发的准确性。作为一个示例,上述步骤s120中向服务器请求获取第一标记的步骤可以包括如下步骤:
78.步骤2.1),向服务器提交请求信息,以使服务器识别当前第一容器的版本与第一定时任务的版本信息是否一致;请求信息包括当前容器的版本id、第一定时任务对应的版本信息以及第一定时任务所属应用版本信息。
79.步骤2.2),若一致,则获取服务器下发的第一标记。
80.步骤2.3),若不一致,则按照预设时间间隔重新执行向服务器请求获取第一标记的步骤。
81.为了保证正在运行的容器会提前终止运行,容器在获取/更新第一标记时,除了当前容器id外,会携带应用的版本与第一定时任务的版本信息,服务器会确保申请第一标记的容器的版本与第一定时任务的版本一致才会下放第一标记。
82.作为一种可选的实施例,在同个时间,针对不同的业务应用可同时选取相应的容器运行定时任务,如,对应业务平台中不同应用a和应用b,应用a对应单点容器a均运行定时任务a,应用b对应单点容器b均运行定时任务b。
83.可以理解的是,上述方案的实现可通过服务器会在集群管理系统中分别创建每隔一段时间(如每小时)运行一次的定时任务a和定时任务b,使得容器a和容器b能够在相应预设时间运行相应定时任务,以满足对应的业务平台需求。
84.基于上述步骤2.1)

步骤2.3),可以按照预设时间或频次对第一标记进行更新,以使第一标记无法及时更新时,停止定时任务的运行,保证定时任务运行的可靠性。作为一个示例,上述步骤s120中向服务器请求获取第一标记的步骤还可以包括如下步骤:
85.步骤3.1),按照预设时间间隔向所述服务器请求更新所述第一标记。
86.示例性地,如图3所示,服务器中创建新的定时任务以后,服务器会在集群管理系统中创建每隔一段预设时间间隔(如每小时)运行一次的定时任务,定时任务会按照预设时间间隔定时启动容器。其中,容器中会先向服务器请求获取第一标记再启动定时任务cron进程在容器中定时运行该定时任务。容器在正常运行定时任务时会定时(如每分钟)或按照预设频次或预设时间间隔向服务器更新第一标记,以确保当前获取的第一标记一直有效,可以继续运行定时任务。
87.在一些实施例中,服务器可以对当前容器和定时任务的版本情况进行识别,以确定能够对第一标记进行更新的情况。作为一个示例,上述步骤3.1)可以包括如下步骤:
88.步骤3.1.1),向服务器提交请求信息,以使服务器,识别当前第一容器的版本与当前第一定时任务的版本信息是否一致。
89.步骤3.1.2),若一致,则根据服务器下发的标记,更新第一标记。
90.步骤3.1.3),若不一致,则终止运行第一定时任务,以使第三容器启动运行相应的定时任务。可以理解的是,第二容器、第三容器或者其他容器运行的定时任务与第一定时任务配置的信息相同、标记获取、更新过程、配置命令过程也类似,在此不再对其他容器的定时任务运行过程进行赘述,本发明实施例以第一容器运行的第一定时任务为例进行说明。
91.基于上述步骤3.1),可以通过临时容器过渡,以使定时任务流畅运行、无缝衔接。作为一个示例,上述步骤3.1.3)可以包括如下步骤:
92.步骤3.1.3.1),若不一致,则终止运行定时任务,以使第三容器启动执行新配置定时任务,第三容器为服务器在集群管理系统以新配置定时任务为模板创建的临时容器。
93.如图5所示,当所属应用版本变化或定时任务的版本发生变化时,当前正在运行的第一容器更新第一标记会失败,从而会提前终止当前容器的运行。而服务器会启动临时容器运行新版本的定时任务。当下一阶段的第二容器被集群管理系统的定时任务命令启动时,会等待临时容器运行结束才会成功获取第二标记,启动定时任务进程运行定时任务。
94.其中,每个定时任务可能会属于某个应用,且每个定时任务都会有各自的版本配置,若是定时任务所属应用版本发生变化或是定时任务的版本发生变化,则当前正在运行定时任务的第一容器不能再以过期版本运行定时任务,且下一阶段的第二容器此时很可能未被启动,需要启动临时容器来执行新版本的定时任务。
95.为了保证正在运行的容器会提前终止运行,容器在获取/更新第一标记时,除了请求信息中当前容器id外,还会携带应用的版本与定时任务的版本信息,以使服务器确保申请第一标记的第一容器的版本与定时任务的版本一致才会下放第一标记。
96.需要说明的是,临时容器的创建过程可包括:当应用版本或定时任务版本发生变生时,服务器需要向集群管理系统更新定时任务cronjob的配置变化;定时任务配置更新为新版本号后,服务器在集群管理系统创建以新配置cronjob为模板的临时容器。
97.在一些实施例中,可以基于定时任务中的配置命令运行定时任务,以使配置发生变化时,能够运行相应最新变化的定时任务。作为一个示例,上述步骤s120中在接收第一标记的情况下,于预设启动时间运行定时任务的步骤,可以包括:
98.步骤4.1),在接收第一标记的情况下,添加定时任务中的配置命令。
99.步骤4.2),在预设启动时间根据配置命令运行定时任务。
100.在前述实施例,步骤4.1)

步骤4.2)的基础上述,上述步骤3.1.3)还包括:若不一致,则删除定时任务中添加的配置命令,并终止运行定时任务,以使第三容器启动运行相应的定时任务。
101.其中,在容器的定时任务被启动后,登录进程会每分钟向服务器更新第一标记,以确保当前容器有权限运行所属定时任务,若是登录进程更新第一标记失败,或是当前容器已经达到预设关闭时间,容器会进入终止流程。
102.在终止流程中,若是容器是因达到预设关闭时间而终止,登录进程会主动向服务器释放第一标记,若是因更新第一标记失败而终止则可以跳过此操作。终止容器时,登录进程会先删除此前添加的定时任务配置,定时任务配置被删除后定时任务进程不会再运行新的定时任务。然后登录进程会等待当前容器中未完成的定时任务运行结束,在容器中的所有定时任务运行结束或是运行超时后,容器才会真正地被终止。
103.在一些实施例中,容器在启动后的生命周期如图6所示,容器的登录init进程启动后会先向服务器申请第一标记;若是因第一标记被其他容器占用而申请失败,则隔一段时间(如每分钟)重试多次直至超时关闭容器;若是因应用版本或容器版本不匹配而申请失败,则终止容器;在获取到容器所属的定时任务的第一标记后,容器的登录进程会启动定时任务crond进程,并添加定时任务的配置命令,此后定时任务进程会根据配置命令定时运行定时任务。判断容器是否已达预设关闭时间,若是,则向服务器释放第一标记,删除定时任务中添加的配置命令,等待未完成的定时任务运行结束,终止容器;若否,则向服务器获取
第一标记用于更新,若更新成功,则预设时间间隔再次更新,若更新失败,则删除定时任务中添加的配置命令,等待未完成的定时任务运行结束,终止容器。
104.其中,定时任务的配置命令是服务器在向集群管理系统创建定时任务时就写入定时任务的配置中的环境变量的,集群管理系统启动容器时,定时任务的配置通过容器环境变量注入容器中,容器登录进程从环境变量中获取定时任务配置。
105.在一些实施例中,服务器可以根据以下几点对标记是否下发进行判别,以使容器运行的定时任务较为可靠。作为一个示例,上述步骤s120中向服务器请求获取第一标记的步骤还包括:
106.步骤5.1),向服务器请求获取第一标记,以使服务器判断第一标记的更新时间与预设更新时间的间隔是否超过阈值;若超过,则第一标记过期;若未超过,则判断第一标记是否已被获取;若未被获取,则下发第一标记。
107.基于上述步骤5.1),作为一个示例,上述步骤s120中向服务器请求获取第一标记的步骤还包括如下步骤:
108.步骤6.1),向服务器请求获取第一标记,以使服务器根据容器id与请求获取第一标记的容器id是否一致,判断第一标记是否被获取;若一致,则未被获取,将定时任务的容器id设置为请求获取第一标记的容器id,并设置第一标记的更新时间为当前时间。
109.其中,服务器处理容器获取第一标记请求的流程如图7所示:
110.服务器中会存有所有定时任务的应用版本、定时任务版本、当前获得第一标记的容器id,以及当前第一标记的更新时间,后两者可以判断当前定时任务是否有获得未过期的第一标记的容器。
111.容器请求获取第一标记时会携带定时任务的版本信息、应用版本信息与当前容器id。服务器在收到请求后会先判断定时任务版本与应用版本是否一致,若不一致则直接返回失败。
112.若版本一致,则会先判断当前定时任务的第一标记是否已被获取,判断方法是服务器是否存有获得第一标记的容器id,且第一标记的更新时间未过期(如更新时间>当前时间

5分钟)。若当前定时任务的第一标记已被获取,则服务器会判断获取第一标记对应的容器id是否与请求的容器id一致,若是一致,则设置第一标记的更新时间为当前时间,返回成功结果,否则返回失败结果。
113.若当前定时任务的第一标记未被获取,服务器会直接将定时任务的容器id设置为请求的容器id,且设置第一标记的更新时间为当前时间,返回成功结果。
114.图8提供了一种定时任务运行装置的结构示意图。该装置可以应用于第一容器。如图8所示,定时任务运行装置800包括:
115.接收模块801,用于接收集群管理系统发送的第一定时任务,其中,所述第一定时任务中配置预设启动时间;
116.运行模块802,用于向服务器请求获取第一标记,在接收所述第一标记的情况下,于所述预设启动时间运行所述第一定时任务。
117.在一些实施例中,运行模块802还具体用于当所述第一定时任务的运行时间达到预设时长时,终止所述第一定时任务的运行,并释放所述第一标记,以使第二容器从所述服务器请求获取第二标记,并基于所述第二标记运行第二定时任务,其中,所述集群管理系统
按照预设时间间隔创建或调用容器,以使所述第二容器在当前第一容器的定时任务运行终止之前产生。
118.在一些实施例中,所述第一定时任务中还配置版本信息和所属应用版本信息,运行模块802还具体用于向所述服务器提交请求信息,以使所述服务器,识别当前第一容器的版本与第一定时任务的版本信息是否一致;所述请求信息包括当前容器的版本id、所述第一定时任务对应的版本信息以及所述第一定时任务所属应用版本信息;若一致,则获取所述服务器下发的第一标记。
119.在一些实施例中,所述第一定时任务为所述服务器按照预设条件在所述集群管理系统创建生成的。
120.在一些实施例中,运行模块802还具体用于按照预设时间间隔向所述服务器请求更新所述第一标记。
121.在一些实施例中,运行模块802还具体用于向所述服务器提交所述请求信息,以使所述服务器,识别当前第一容器的版本与第一定时任务的版本信息是否一致;若一致,则根据所述服务器下发的标记,更新所述第一标记;若不一致,则终止运行所述第一定时任务,以使第三容器启动运行相应的定时任务。
122.在一些实施例中,运行模块802还具体用于若不一致,则终止运行所述定时任务,以使第三容器启动执行新配置定时任务,所述第三容器为所述服务器在所述集群管理系统以所述新配置定时任务为模板创建的临时容器。
123.在一些实施例中,运行模块802还具体用于若不一致,则按照预设时间间隔重新执行向服务器请求获取第一标记的步骤。
124.在一些实施例中,接收模块801还具体用于在接收所述第一标记的情况下,添加第一定时任务中的配置命令;在所述预设启动时间根据所述配置命令运行所述第一定时任务。
125.在一些实施例中,运行模块802还具体用于若不一致,则删除第一定时任务中添加的所述配置命令,并终止运行所述第一定时任务,以使第三容器启动运行相应的定时任务。
126.在一些实施例中,运行模块802还具体用于向服务器请求获取第一标记,以使所述服务器判断所述第一标记的更新时间与预设更新时间的间隔是否超过阈值;若超过,则所述第一标记过期;若未超过,则判断所述第一标记是否已被获取;若未被获取,则下发第一标记。
127.在一些实施例中,运行模块802还具体用于向服务器请求获取第一标记,以使所述服务器根据容器id与请求获取第一标记的容器id是否一致,判断所述第一标记是否被获取;若一致,则未被获取,将定时任务的容器id设置为请求获取第一标记的容器id,并设置所述第一标记的更新时间为当前时间。
128.本技术实施例提供的定时任务运行装置,与上述实施例提供的定时任务运行方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
129.如图9所示,本技术实施例提供的一种计算机设备900,包括:存储器902、处理器901和总线,所述存储器902存储有所述处理器901可执行的机器可读指令,当计算机设备运行时,所述处理器901与所述存储器902之间通过总线通信,所述处理器901执行所述机器可读指令,以执行如上述定时任务运行方法的步骤。
130.具体地,上述存储器902和处理器901能够为通用的存储器和处理器,这里不做具体限定,当处理器901运行存储器902存储的计算机程序时,能够执行上述方法。
131.对应于上述方法,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述方法的步骤。
132.本技术实施例所提供的定时任务运行装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本技术实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
133.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
134.再例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
135.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
136.另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
137.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
138.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
139.最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的范围。都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献