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

分布式定时任务执行方法、装置、设备和介质与流程

2022-07-15 20:42:15 来源:中国专利 TAG:


1.本技术一般涉及数据处理领域,具体涉及一种分布式定时任务执行方法、装置、设备和介质。


背景技术:

2.随着互联网技术的发展,分布式系统的出现成为解决海量数据处理的有效手段,对于应用程序的服务端,分布式系统的通常采用多节点部署服务终端的方式,实现对应用程序的数据处理。
3.通常情况下,每各服务终端需要执行一些相同的定时任务,由于每各服务终端的启动时间有差异,导致每各服务终端执行定时任务的时间不一致,在同一时间各服务终端会出现数据不一致的情况。
4.相关技术中,可以借助分布式协调系统对各节点服务终端进行协调,使各服务终端同时执行相同的定时任务,分布式协调系统会通常部署和运维难度大且成本较高。


技术实现要素:

5.鉴于现有技术中的上述缺陷或不足,期望提供一种可以低成本实现分布式定时任务执行方法、装置、设备和介质。
6.第一方面,本技术提供了一种分布式定时任务执行方法,包括:
7.在定时任务执行时刻,第一服务终端发送定时任务执行消息,第一服务终端为服务终端集群中最先启动的服务终端;
8.至少一个第二服务终端获取定时任务执行消息,至少一个第二服务终端为服务终端集群中除第一服务终端以外的其余服务终端;
9.每个第二服务终端基于定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务;
10.第二方面,本技术提供了一种分布式定时任务执行装置,包括:
11.发送模块,被配置为在定时任务执行时刻,第一服务终端发送定时任务执行消息,第一服务终端为服务终端集群中最先启动的服务终端;
12.获取模块,被配置为至少一个第二服务终端获取定时任务执行消息,至少一个第二服务终端为服务终端集群中除第一服务终端以外的其余服务终端;
13.确定模块,被配置为每个第二服务终端基于定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务;
14.第三方面,本技术提供了一种计算机设备,计算机设备包括:
15.处理器;
16.用于存储处理器的可执行指令的存储器;
17.其中,处理器被配置为执行如第一方面的分布式定时任务执行方法;
18.第四方面,本技术提供了一种计算机可读介质,计算机可读介质中存储有计算机
程序,当计算机程序被处理器执行时,实现如第一方面的分布式定时任务执行方法。
19.本技术的实施例提供的技术方案可以包括以下有益效果:
20.本技术实施例提供的分布式定时任务执行方法、装置、设备和介质,可以在定时任务执行时刻,第一服务终端发送定时任务执行消息;至少一个第二服务终端获取定时任务执行消息;每个第二服务终端基于定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务。利用分布式服务端实现定时任务的一致执行,降低分布式服务端执行定时任务的运维和部署难度及成本。
附图说明
21.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
22.图1为本技术实施例提供的一种分布式定时任务执行方法的实施环境架构图;
23.图2为本技术实施例提供的一种分布式定时任务执行方法的流程示意图;
24.图3为本技术实施例提供的另一种分布式定时任务执行方法的流程示意图;
25.图4为本技术实施例提供的一种分布式定时任务执行装置的结构示意图;
26.图5为本技术实施例提供的另一种分布式定时任务执行装置的结构示意图;
27.图6为本技术实施例提供的另一种分布式定时任务执行装置的结构示意图;
28.图7为本技术实施例提供的一种分布式定时任务执行装置的结构示意图。
具体实施方式
29.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
30.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
31.图1是本技术实施例提供的一种分布式定时任务执行方法的实施环境架构图。如图1所示,该实施环境架构包括:至少一个服务终端110和消息处理终端120,该每个服务终端110和消息处理终端120分别建立有线或者无线网络通信连接,该至少一个服务终端110组成服务终端集群,该服务终端集群用于为对应的应用程序提供数据处理服务。其中,该服务终端110和消息处理终端120可以为具备数据处理功能的计算机或者服务器等设备。
32.在本技术实施例中,服务终端集群除了为应用程序提供数据处理服务,还需要处理一些定时任务,该定时任务为需要按照一定的时间周期定时处理的任务。例如,该定时任务可以是:服务终端启动后,每间隔5分钟,更新一次本地缓存;或者,服务终端启动后,每间隔7分钟,备份一次数据。
33.其中,对于定时任务,在定时任务执行时刻,第一服务终端110发送定时任务执行消息至消息处理终端120,该消息处理终端120可以将该任务执行消息发送至对应的数据存储终端(图中未示出)进行存储,以便于对定时任务执行行为的查看。与此同时,至少一个第二服务终端110可以监听到第一服务终端110发送的任务执行消息,并基于获取的定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务。其中,第一服务终端为服务
终端集群中最先启动的服务终端,第二服务终端为服务终端集群中除第一服务终端以外的任一服务终端。
34.本技术实施例提供一种分布式定时任务执行方法,该方法可以应用于如图1所示的实施环境架构中,如图2所示,该方法包括:
35.步骤201、在定时任务执行时刻,第一服务终端发送定时任务执行消息。
36.在本技术实施例中,服务终端集群中的每个服务终端被成功启动后,可以记录其启动时间,并将该启动时间同步至服务终端集群中的其他终端。对于服务终端集群中的每个服务终端,可以确定与服务终端对应的启动时间;判断与服务终端对应的启动时间是否为第一服务终端启动时间表中的最早时间;若是,确定服务终端为第一服务终端,该第一服务终端为服务终端集群中最先启动的服务终端;若不是,确定服务终端为第二服务终端。其中,该第一服务终端启动时间表包括服务终端集群中与每个服务终端对应的启动时间。
37.在本步骤中,在定时任务执行时刻,第一服务终端可以生成定时任务执行消息,并发送该定时任务执行消息至消息处理终端。其中,定时任务执行消息可以包括:(“type”:“dic”,“sendversion”:n),其中,type为数据类型,dic为数据字典,sendversion为定时任务发送版本标识,n为定时任务发送版本号,该定时任务发送版本标识是与定时任务的定时任务标识对应的发送版本标识,该定时任务发送版本号用于表示服务终端被启动后,定时任务被执行的次数。
38.需要说明的是,在本技术实施例中,对于定时任务,第一服务终端发送定时任务执行消息后,可以确定定时任务发送版本号与参数值的第一和值,将第一和值确定为更新后的定时任务发送版本号,该更新后的定时任务发送版本号为与该定时任务对应的下一个定时任务执行时刻,第一服务终端发送的定时任务执行消息中的定时任务发送版本号。其中,该参数值可以为1。
39.步骤202、至少一个第二服务终端获取定时任务执行消息。
40.在本步骤中,服务终端集群中的至少一个第二服务终端可以时刻监第一服务终端是否发送定时任务执行消息,若是,则可以获取定时任务执行消息。可以理解的是,该至少一个第二服务终端为服务终端集群中除第一服务终端以外的其余服务终端。
41.步骤203、每个第二服务终端基于定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务。
42.在本步骤中,如图3所示,每个第二服务终端基于定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务的过程可以包括:
43.步骤2031、解析定时任务执行消息获取定时任务发送版本标识和定时任务发送版本号。
44.步骤2032、确定与定时任务发送版本标识对应的定时任务接收版本标识和定时任务接收版本号。
45.在本步骤中,确定与定时任务发送版本标识对应的定时任务接收版本标识和定时任务接收版本号的过程可以包括:解析该定时任务发送版本标识得到目标定时任务标识,该目标定时任务标识为与定时任务发送版本标识对应的定时任务标识;判断定时任务版本表中是否包含目标定时任务标识;若包含,获取与目标定时任务标识对应的定时任务接收版本标识和定时任务接收版本号;若不包含,确定与目标定时任务标识对应的定时任务发
送版本标识和定时任务接收版本号,并将目标定时任务标识,以及与目标定时任务标识对应的定时任务发送版本标识和定时任务接收版本号添加至定时任务版本表中,更新定时任务版本表。其中,定时任务版本表包括至少一个定时任务标识,以及与每个定时任务标识对应的定时任务接收版本标识和定时任务接收版本号。
46.需要说明的是,若定时任务版本表中不包含目标定时任务标识,则可以确定与该目标定时任务标识对应的定时任务未被执行过,确定与该目标定时任务标识对应的定时任务接收版本标识以及定时任务接收版本号,该定时任务接收版本号可以为与该目标定时任务标识对应的初始定时任务接收版本号,示例的,该初始定时任务接收版本号可以为0。
47.步骤2033、判断定时任务发送版本号是否大于定时任务接收版本号。
48.步骤2034、若是,执行与定时任务执行消息对应的定时任务。
49.在本步骤中,执行与定时任务执行消息对应的定时任务的过程包括:解析定时任务发送版本标识得到目标定时任务标识,利用该目标定时任务标识查找定时任务表得到与该目标定时任务标识对应定时任务,执行该定时任务。其中,该定时任务表包括至少一个定时任务标识和与该定时任务标识对应的定时任务。
50.需要说明的是,在本技术实施例中,在执行与定时任务执行消息对应的定时任务后,可以确定与定时任务对应的定时任务接收版本号与参数值的第二和值,将第二和值确定为更新后的定时任务接收版本号。其中,该参数值可以为1。可以避免同一定时任务被重复执行,保证分布式定时任务的统一性。
51.步骤2035、若不是,不执行与定时任务执行消息对应的定时任务。
52.可选的,为了保证服务终端集群在第一服务终端出现故障后,依旧可以保证其他服务终端执行分布式定时任务,在上述步骤的执行过程中,至少一个第二服务终端还可以判断第一服务终端是否故障;若是,对于每个第二服务终端,确定第二服务终端是否为更新后的第一服务终端,若是,在定时任务执行时刻,更新后的第一服务终端发送定时任务执行消息,以使至少一个第二服务终端基于定时任务执行消息确定是否执行定时任务,该至少一个第二服务终端为至少一个第二服务终端中除去被确定为更新后的第一服务终端的第二服务终端。可以理解的是,在定时任务执行时刻,更新后的第一服务终端发送定时任务执行消息,以使至少一个第二服务终端基于定时任务执行消息确定是否执行定时任务的过程可以参考上述步骤201至步骤203,本技术实施例对此不做赘述。
53.其中,至少一个第二服务终端判断第一服务终端是否故障的过程可以包括:每个第二服务终端按照预设周期向第一服务终端发送检测信号;若预设数量的第二服务终端在预设时长内未接受到第一服务终端返回的响应信号,确定第一服务终端故障。其中,该预设周期和预设数量可以基于实际需要确定,本技术实施例对此不做限定。例如,该预设数量可以为第二服务终端总数量的三分之二。可以理解的是,每个第二服务终端在每次向第一服务终端发送检测信号后,可以将第一服务终端对该检测信号的响应结果同步至其他第二服务终端,以便于对第一服务终端是否出现故障进行判断。
54.其中,确定第二服务终端是否为更新后的第一服务终端的过程可以包括:确定与第二服务终端对应的启动时间;判断与第二服务终端对应的启动时间是否为第二服务终端启动时间表中的最早时间;若是,确定第二服务终端为更新后的第一服务终端。该第二服务终端启动时间表包括与每个第二服务终端对应的启动时间。
55.示例的,假设服务终端集群包括服务终端a1、服务终端a2和服务终端a3,该服务终端集群需要执行的定时任务为每间隔5分钟,更新一次本地缓存,该定时任务的定时任务标识为w,且服务终端a1确定其为与该服务终端集群对应的第一服务终端,服务终端a2和服务终端a3分别确定其为与该服务终端集群对应的第二服务终端。
56.则服务终端启动5分钟后,第一服务终端a1生成定时任务执行消息,并发送定时任务执行消息至消息处理终端,该定时任务执行消息包括(“type”:“dic”,“sendversion”:1),其中该定时任务发送版本标识sendversion是与定时任务的定时任务标识w对应的发送版本标识。同时,将与该定时任务w对应的定时任务发送版本号更新为2。
57.在该过程中,第二服务终端a2和第二服务终端a3可以监听获取该定时任务执行消息,解析该定时任务执行消息获取定时任务发送版本标识sendversion和定时任务发送版本号1,进一步的,可以解析该定时任务发送版本标识sendversion得到目标定时任务标识w,确定定时任务版本表中不否包含目标定时任务标识,则可以确定与目标定时任务标识w对应的定时任务发送版本标识receiveversion和定时任务接收版本号0,由于定时任务发送版本号1大于定时任务接收版本号0,可以从定时任务表中获取与目标定时任务标识对应的定时任务为更新一次本地缓存,执行本地缓存更新操作。
58.可选的,该第二服务终端a2和第二服务终端a3还可以判断第一服务终端a1是否故障;若是,对于第二服务终端a2,可以确定第二服务终端a2是否为更新后的第一服务终端,对于第二服务终端a3,可以确定第二服务终端a3是否为更新后的第一服务终端,若确定第二服务终端a2为更新后的第一服务终端,在定时任务执行时刻,更新后的第一服务终端a2发送定时任务执行消息,以使第二服务终端a3基于定时任务执行消息确定是否执行定时任务。
59.综上所述,本技术实施例提供的分布式定时任务执行方法,可以在定时任务执行时刻,第一服务终端发送定时任务执行消息,第一服务终端为服务终端集群中最先启动的服务终端;至少一个第二服务终端获取定时任务执行消息,至少一个第二服务终端为服务终端集群中除第一服务终端以外的其余服务终端;每个第二服务终端基于定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务。利用分布式服务端实现定时任务的一致执行,降低分布式服务端执行定时任务的运维和部署难度及成本。
60.本技术实施例提供一种分布式定时任务执行装置,如图4所示,该装置30包括:
61.发送模块301,被配置为在定时任务执行时刻,第一服务终端发送定时任务执行消息,第一服务终端为服务终端集群中最先启动的服务终端;
62.获取模块302,被配置为至少一个第二服务终端获取定时任务执行消息,至少一个第二服务终端为服务终端集群中除第一服务终端以外的其余服务终端;
63.确定模块303,被配置为每个第二服务终端基于定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务。
64.可选的,确定模块303,被配置为:
65.解析定时任务执行消息获取定时任务发送版本标识和定时任务发送版本号;
66.确定与定时任务发送版本标识对应的定时任务接收版本标识和定时任务接收版本号;
67.判断定时任务发送版本号是否大于定时任务接收版本号;
68.若是,执行与定时任务执行消息对应的定时任务;
69.若不是,不执行与定时任务执行消息对应的定时任务。
70.可选的,确定模块303,被配置为:
71.解析定时任务发送版本标识得到目标定时任务标识;
72.判断定时任务版本表中是否包含目标定时任务标识,定时任务版本表包括至少一个定时任务标识,以及与每个定时任务标识对应的定时任务接收版本标识和定时任务接收版本号;
73.若包含,获取与目标定时任务标识对应的定时任务接收版本标识和定时任务接收版本号;
74.若不包含,确定与目标定时任务标识对应的定时任务发送版本标识和定时任务接收版本号,并更新定时任务版本表。
75.可选的,如图5所示,该装置30还包括第一确定模块304,被配置为:
76.对于服务终端集群中的每个服务终端,确定与服务终端对应的启动时间;
77.判断与服务终端对应的启动时间是否为第一服务终端启动时间表中的最早时间,第一服务终端启动时间表包括服务终端集群中与每个服务终端对应的启动时间;
78.若是,确定服务终端为第一服务终端;
79.若不是,确定服务终端为第二服务终端。
80.可选的,如图6所示,该装置30还包括更新模块305,被配置为:
81.至少一个第二服务终端判断第一服务终端是否故障;
82.若是,对于每个第二服务终端,确定第二服务终端是否为更新后的第一服务终端;
83.若是,在定时任务执行时刻,更新后的第一服务终端发送定时任务执行消息,以使至少一个第二服务终端基于定时任务执行消息确定是否执行定时任务。
84.可选的,更新模块305,被配置为:
85.每个第二服务终端按照预设周期向第一服务终端发送检测信号;
86.若预设数量的第二服务终端在预设时长内未接受到第一服务终端返回的响应信号,确定第一服务终端故障。
87.可选的,更新模块305,被配置为:
88.确定与第二服务终端对应的启动时间;
89.判断与第二服务终端对应的启动时间是否为第二服务终端启动时间表中的最早时间,第二服务终端启动时间表包括与每个第二服务终端对应的启动时间;
90.若是,确定第二服务终端为更新后的第一服务终端。
91.综上所述,本技术实施例提供的分布式定时任务执行装置,可以在定时任务执行时刻,第一服务终端发送定时任务执行消息,第一服务终端为服务终端集群中最先启动的服务终端;至少一个第二服务终端获取定时任务执行消息,至少一个第二服务终端为服务终端集群中除第一服务终端以外的其余服务终端;每个第二服务终端基于定时任务执行消息确定是否执行与定时任务执行消息对应的定时任务。利用分布式服务端实现定时任务的一致执行,降低分布式服务端执行定时任务的运维和部署难度及成本。
92.图7是根据一示例性实施例示出的一种计算机设备,该计算机设备包括中央处理单元(cpu)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储部分加载到随
机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram403中,还存储有系统操作所需的各种程序和数据。cpu401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
93.以下部件连接至i/o接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至i/o接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
94.特别地,根据本技术的实施例,上文图2至图3描述的过程可以被实现为计算机软件程序。例如,本技术的各个实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)401执行时,执行本技术的系统中限定的上述功能。
95.需要说明的是,本技术所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
96.附图中的流程图和框图,图示了按照本技术各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
97.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块和确定模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,发送模块还可以被描述为“第一服务终端用于发送定时任务执行消息的发送模块”。
98.作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中描述的分布式定时任务执行方法。
99.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

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

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

相关文献