数据同步方法、设备及存储介质与流程

文档序号:31794108发布日期:2022-10-14 16:49阅读:69来源:国知局
数据同步方法、设备及存储介质与流程

1.本技术涉及计算机技术领域,具体而言,涉及一种数据同步方法、设备及存储介质。


背景技术:

2.随着数据处理技术的快速发展,通常需要将数据提供方的业务数据同步至数据接收方,以便数据接收方基于同步的业务数据进行相应业务处理。
3.现有技术中,数据提供方和数据接收方可能具有两个互相隔离的业务系统,数据提供方提供有超文本传输协议(hyper text transfer protocol,http)的接口以将业务数据同步至数据接收方。
4.然而,随着同步的数据量越来越大,同步时间较长,很容易超过http协议的超时阈值,并且由于同步时间较长,受环境因素影响风险较大,从而导致数据同步失败。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种数据同步方法、设备及存储介质,以解决现有技术中数据量大导致数据同步失败的问题。
6.第一方面,本技术实施例提供了一种数据同步方法,应用于数据接收方,所述方法包括:
7.将从数据提供方查询到的待同步数据拆分为多个页数据,每个页数据中包括多个待同步子数据;
8.获取所述数据接收方的任务并发度,所述任务并发度用于指示并行进行数据同步的处理线程的数量;
9.根据预设的任务分配策略和所述任务并发度,将所述多个页数据分配给多个处理线程;
10.将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果。
11.在一可选的实施方式中,所述将从数据提供方查询到的待同步数据拆分为多个页数据之前,所述方法还包括:
12.接收所述数据提供方发送的数据同步信号,所述数据同步信号中包括:所述待同步数据的数据标识和总数据量;
13.根据所述数据标识和所述总数据量,采用任务管理器对所述待同步数据进行分页查询,所述任务管理器用于对所述待同步数据进行分页查询。
14.在一可选的实施方式中,所述将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果,包括:
15.采用每个所述处理线程,将对应的页数据从所述数据提供方依次同步至所述数据接收方;
16.若目标页数据同步失败,则跳过所述目标页数据,并采用所述目标页数据对应的处理线程,将所述目标页数据之后的页数据依次同步至所述数据接收方,得到所述数据同步结果,所述数据同步结果包括:目标页数据同步失败以及所述目标页数据之外的其它页数据同步成功。
17.在一可选的实施方式中,所述方法还包括:
18.若目标页数据同步失败,则更新失败计数器的失败计数,其中,所述失败计数器用于对同步失败的页数据进行页数统计。
19.在一可选的实施方式中,所述将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果之后,所述方法还包括:
20.根据所述失败计数,确定所述页数据是否全部同步成功;
21.若所述失败计数指示所述页数据未全部同步成功,则根据所述数据同步结果,确定所述页数据中同步失败的失败页数据的页码标识;
22.采用所述失败页数据对应的处理线程,对所述失败页数据进行重复同步,直至达到预设同步停止条件,所述预设同步停止条件包括:达到预设补偿次数阈值,和/或,所述失败页数据同步成功;
23.若达到所述预设同步停止条件,则更新所述数据同步结果为预设同步次数后所述失败页数据同步失败以及所述其它页数据同步成功,或者所述页数据全部同步成功。
24.在一可选的实施方式中,所述将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果之后,所述方法还包括:
25.根据所述失败计数,确定所述页数据是否全部同步成功;
26.若所述失败计数指示所述页数据未全部同步成功,则更新所述数据同步结果为所述页数据同步失败。
27.在一可选的实施方式中,所述根据所述失败计数,确定所述页数据是否全部同步成功之前,所述方法还包括:
28.判断多个所述处理线程正在同步的页数据中是否包括所述多个页数据中的终止页数据;
29.若任意处理线程正在同步的页数据为所述终止页数据,则将所述终止页数据同步完成后,更新任务管理器的状态为同步完成;
30.所述根据所述失败计数,确定所述页数据是否全部同步成功,包括:
31.响应于所述任务管理器的状态更新为同步完成,则根据所述失败计数,确定所述页数据是否全部同步成功。
32.在一可选的实施方式中,所述将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果之前,所述方法还包括:
33.判断所述多个处理线程待同步的页数据中是否包括所述多个页数据中的起始页数据;
34.若任意处理线程待同步的页数据为所述起始页数据,则更新任务管理器的状态为同步中;
35.所述将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果,包括:
36.响应于所述任务管理器的状态更新为同步中,将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果。
37.第二方面,本技术实施例还提供了一种数据同步装置,应用于数据接收方,所述装置包括:
38.处理模块,用于将从数据提供方查询到的待同步数据拆分为多个页数据,每个页数据中包括多个待同步子数据;
39.获取模块,用于获取所述数据接收方的任务并发度,所述任务并发度用于指示并行进行数据同步的处理线程的数量;
40.所述处理模块,还用于根据预设的任务分配策略和所述任务并发度,将所述多个页数据分配给多个处理线程;
41.同步模块,用于将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果。
42.在一可选的实施方式中,所述装置还包括:
43.接收模块,用于接收所述数据提供方发送的数据同步信号,所述数据同步信号中包括:所述待同步数据的数据标识和总数据量;
44.所述处理模块,还用于根据所述数据标识和所述总数据量,采用任务管理器对所述待同步数据进行分页查询,所述任务管理器用于对所述待同步数据进行分页查询。
45.在一可选的实施方式中,所述同步模块,具体用于:
46.采用每个所述处理线程,将对应的页数据从所述数据提供方依次同步至所述数据接收方;
47.若目标页数据同步失败,则跳过所述目标页数据,并采用所述目标页数据对应的处理线程,将所述目标页数据之后的页数据依次同步至所述数据接收方,得到所述数据同步结果,所述数据同步结果包括:目标页数据同步失败以及所述目标页数据之外的其它页数据同步成功。
48.在一可选的实施方式中,所述处理模块,还用于:
49.若目标页数据同步失败,则更新失败计数器的失败计数,其中,所述失败计数器用于对同步失败的页数据进行页数统计。
50.在一可选的实施方式中,所述处理模块,还用于:
51.根据所述失败计数,确定所述页数据是否全部同步成功;
52.若所述失败计数指示所述页数据未全部同步成功,则根据所述数据同步结果,确定所述页数据中同步失败的失败页数据的页码标识;
53.采用所述失败页数据对应的处理线程,对所述失败页数据进行重复同步,直至达到预设同步停止条件,所述预设同步停止条件包括:达到预设补偿次数阈值,和/或,所述失败页数据同步成功;
54.若达到所述预设同步停止条件,则更新所述数据同步结果为预设同步次数后所述失败页数据同步失败以及所述其它页数据同步成功,或者所述页数据全部同步成功。
55.在一可选的实施方式中,所述处理模块,还用于:
56.根据所述失败计数,确定所述页数据是否全部同步成功;
57.若所述失败计数指示所述页数据未全部同步成功,则更新所述数据同步结果为所
述页数据同步失败。
58.在一可选的实施方式中,所述处理模块,还用于:
59.判断多个所述处理线程正在同步的页数据中是否包括所述多个页数据中的终止页数据;
60.若任意处理线程正在同步的页数据为所述终止页数据,则将所述终止页数据同步完成后,更新任务管理器的状态为同步完成;
61.所述处理模块,具体用于:
62.响应于所述任务管理器的状态更新为同步完成,则根据所述失败计数,确定所述页数据是否全部同步成功。
63.在一可选的实施方式中,所述处理模块,还用于:
64.判断所述多个处理线程待同步的页数据中是否包括所述多个页数据中的起始页数据;
65.若任意处理线程待同步的页数据为所述起始页数据,则更新任务管理器的状态为同步中;
66.所述处理模块,具体用于:
67.响应于所述任务管理器的状态更新为同步中,将每个所述处理线程的页数据从所述数据提供方依次同步至所述数据接收方,得到数据同步结果。
68.第三方面,本技术实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的数据同步方法。
69.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一项所述的数据同步方法。
70.本技术提供了一种数据同步方法、设备及存储介质,其中,该方法包括:数据接收方将从数据提供方查询到的待同步数据拆分为多个页数据,每个页数据中包括多个待同步子数据,数据接收方获取数据接收方的任务并发度,任务并发度用于指示并行进行数据同步的处理线程的数量,数据接收方根据预设的任务分配策略和任务并发度,将多个页数据分配给多个处理线程,数据接收方将每个处理线程的页数据依次同步至数据接收方,得到待同步数据的数据同步结果。在本技术中,将待同步数据拆分为多个页数据,并发进行页数据的同步,缩短了同步时间,提高了数据同步效率和成功率,并且减少了环境因素的影响,提升了数据同步稳定性。
71.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
72.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其他相关的附图。
73.图1为本技术实施例提供的数据同步方法的流程示意图一;
74.图2为本技术实施例提供的数据同步方法的流程示意图二;
75.图3为本技术实施例提供的数据同步方法的流程示意图三;
76.图4为本技术实施例提供的任务表的示意图;
77.图5为本技术实施例提供的数据同步方法的流程示意图四;
78.图6为本技术实施例提供的数据同步方法的流程示意图五;
79.图7为本技术实施例提供的数据同步方法的流程示意图六;
80.图8为本技术实施例提供的数据同步方法的流程示意图七;
81.图9为本技术实施例提供的数据同步装置的结构示意图;
82.图10为本技术实施例提供的电子设备的结构示意图。
具体实施方式
83.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
84.针对现有技术中,通过超文本传输协议(hyper text transfer protocol,http)直接并行进行数据同步,由于需要同步的数据量相对较大,同步时间较长(通常10-25分钟),很容易超过http协议的超时阈值(通常为30秒),并且由于同步时间较长,受环境因素影响风险较大,例如网络波动等,导致数据同步失败的问题,本技术提供了一种数据同步方法,将待同步数据拆分为多个页数据,并发进行页数据的同步,缩短了同步时间,提高了数据同步效率和成功率,并且减少了环境因素的影响,提升了数据同步稳定性。
85.下面结合几个具体实施例对本技术提供的数据同步方法进行说明。
86.图1为本技术实施例提供的数据同步方法的流程示意图一,本实施例的执行主体可以为数据接收方,如终端设备、服务器等具备数据处理能力的设备。
87.需要说明的是,本技术中的数据接收方和数据发送方仅用于说明胡数据的流向,在一些情况下,数据接收方也可以为数据发送方,数据发送方也可以为数据接收方。
88.如图1所示,该方法包括:
89.s101、将从数据提供方查询到的待同步数据拆分为多个页数据。
90.其中,在数据从数据提供方同步至数据接收方之前,数据接收方可以从数据提供方查询到待同步数据,并将查询到的待同步数据拆分为多个页数据,每个页数据中包括多个待同步子数据,即页数据为以页为粒度的待同步子数据的集合。
91.例如,对于平均拆分而言,待同步数据包括10万个数据,平均拆分为20页,即20个页数据,每个页数据中包括5000条待同步子数据;对于非平均拆分而言,在拆分时,每个页数据包括相同数量的待同步子数据,对于一些情况下,拆分到的最后一个页数据可能包括
待同步子数据的数量较前面页数据少,也即最后一个页数据包括拆分后剩余的数据。
92.需要说明的是,关于页数据的数量、页数据中包括待同步子数据的数量均可以根据实际需求设定,本实施例对此不做特别限定。
93.s102、获取数据接收方的任务并发度。
94.其中,任务并发度用于指示并行进行数据同步的处理线程的数量,也即,同时进行数据同步的处理线程的数量。
95.在一些实施例中,不同处理器核数对应不同的任务并发度,可以根据数据接收方的处理器核数,获取数据接收方的任务并发度,例如,数据接收方的处理器为4核,则该数据接收方的任务并发度可以为3至5,即同时可以采用3至5的处理线程进行数据同步,如此,可以通过扩展数据接收器处理器核数,增加并发度,以提升数据同步性能。
96.s103、根据预设的任务分配策略和任务并发度,将多个页数据分配给多个处理线程。
97.其中,预设的任务分配策略为页数据与处理线程之间的分配策略,根据该任务分配策略和任务并发度,可以将多个页数据分配给多个处理线程,其中,处理线程的数量由任务并发度确定,不同任务并发度对应的处理线程的数量可以不同,例如,处理线程的数量为3至5个,页数据的数量为20个,即采用3-5个线程对20个页数据进行同步。
98.处理线程的数量可以等于页数据的数量,也可以小于或大于页数据的数量,本实施例对处理线程和页数据之间的相对数量关系不做特别限定。
99.在一些实施例中,任务分配策略可以包括轮询策略、分段策略、先到先得策略中的任意一种。
100.轮询策略指的是轮流给每个处理线程分配页数据,例如,页数据的数量为10个,处理线程的数量为3个,则将第1个页数据分配给第1个处理线程,第2个页数据分配给第2个处理线程,第3个页数据分配给第3个处理线程,第4个页数据分配给第1个处理线程,第5个页数据分配给第2个处理线程,依次类推,直至将所有页数据分配完。
101.分段策略指的是先把所有页数据分成几个部分,每个部分由一个处理线程执行,例如,页数据的数量为20个,处理线程的数量为3个,将页数据分为3部分,第一部分包括第1个页数据至第5个页数据,第二部分包括第6个页数据至第10个页数据,第三部分包括第11个页数据至第15个页数据。
102.先到先得策略指的是先到的处理线程取未执行的任务执行,例如,页数据的数量为10个,处理线程的数量为3个,将第1个页数据分配给第1个处理线程,第2个页数据分配给第2个处理线程,第3个页数据分配给第3个处理线程,这3个处理线程中先完成数据同步的对未同步的页数据进行数据同步。
103.s104、将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果。
104.将多个页数据分配给多个处理线程之后,对于每个处理线程,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果,即采用每个处理线程从数据提供方拉取对应的页数据依次同步至数据接收方,其中,对于每个处理线程而言,对应的页数据的数量包括但不限于一个,每个处理线程每次只能同步一个页数据,即每个页数据单独请求,单独传输。
105.和现有技术相比,现有方案同步7万个数据,所花时间约为25分钟左右,而采用本技术的方案,例如任务并发度为2,同步完7万个数据所花的时间为14分钟左右,显著提升了数据同步效率;并且,现有技术一个请求同步7万个数据,而本技术一个请求同步1000个数据,每个请求的执行时间大大缩短,进而降低了环境因素带来的风险。
106.在本实施例的数据同步方法中,数据接收方将从数据提供方查询到的待同步数据拆分为多个页数据,每个页数据中包括多个待同步子数据,数据接收方获取数据接收方的任务并发度,任务并发度用于指示并行进行数据同步的处理线程的数量,数据接收方根据预设的任务分配策略和任务并发度,将多个页数据分配给多个处理线程,数据接收方将每个处理线程的页数据依次同步至数据接收方,得到待同步数据的数据同步结果。在本技术中,将待同步数据拆分为多个页数据,并发进行页数据的同步,缩短了同步时间,提高了数据同步效率和成功率,并且减少了环境因素的影响,提升了数据同步稳定性。
107.在一可能的实施方式中,可以增加一个信号发送机制,当数据提供方的数据准备就绪之后,可以向数据接收方发送一个数据同步信号,以通知数据接收方本次待同步数据的一些信息。下面结合图2进行说明。
108.图2为本技术实施例提供的数据同步方法的流程示意图二,如图2所示,将从数据提供方查询到的待同步数据拆分为多个页数据之前,该方法还包括:
109.s201、接收数据提供方发送的数据同步信号。
110.若数据提供方的数据准备就绪,则可以向数据接收方发送数据同步信号,数据同步信号中包括:待同步数据的数据标识和总数据量,其中,待同步数据的数据标识可以为待同步数据的业务标识,相应地,数据接收方即可接收数据提供方发送的数据同步信号。
111.s202、根据数据标识和总数据量,采用任务管理器对待同步数据进行分页查询。
112.数据接收器接收到数据提供方发送的数据同步信号之后,可以创建待同步数据的任务管理器,并判断待同步数据量的总数据量是否超过预设数据量,若待同步数据量的总数据量超过预设数据量,则数据接收方可以根据该数据标识,对数据提供方的待同步数据进行分页查询,这样可以防止数据量过大,查询时间过长。
113.需要说明的是,查询到待同步数据之后,还可以采用任务管理器对待同步数据进行拆分,以将待同步数据拆分为多个页数据,以及采用任务管理器逐一启动各处理线程。
114.在一些实施例中,可以创建并发度控制器,采用并发度控制器获取任务并发度,另外,数据提供方提供有数据服务,基于该数据服务,通过http协议采用任务管理器可以对待同步数据进行分页查询。
115.在本实施例的数据同步方法中,接收数据提供方发送的数据同步信号,根据数据标识和总数据量,采用任务管理器对待同步数据进行分页查询。增加一个信号机制,可以对数据的同步进行统一管理,提升了数据同步能力。
116.在一可选的实施方式中,在数据同步过程中,由于环境因素(如网络原因)等造成存在同步失败的页数据,则可以跳过同步失败的页数据,继续对其它页数据并行进行数据同步,下面结合图3进行说明。
117.图3为本技术实施例提供的数据同步方法的流程示意图三,如图3所示,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果,包括:
118.s301、采用每个处理线程,将对应的页数据从数据提供方依次同步至数据接收方。
119.采用每个处理线程,将每个处理线程对应的页数据从数据提供方依次同步至数据接收方,每个处理线程对应的页数据的数量包括但不限于一个,即每个处理线程可以采用循环的方式,一页一页地进行数据同步,其中,每个页数据具有对应的页码标识,例如,第1个页数据的页码标识为1,第2个页数据的页码标识为2。
120.s302、若目标页数据同步失败,则跳过目标页数据,并采用目标页数据对应的处理线程,将目标页数据之后的页数据依次同步至数据接收方,得到数据同步结果。
121.若目标页数据同步失败,则跳过目标页数据,即不对目标页数据进行同步,直接采用目标页数据对应的处理线程,将目标页数据之后的页数据依次同步至数据接收方,得到数据同步结果,其中,数据同步结果包括:目标页数据同步失败以及目标页数据之外的其它页数据同步成功。例如,第3个页数据同步失败,则跳过第3个页数据,继续同步第4个页数据。
122.在一可选的实施方式中,若目标页数据同步失败,则确定数据同步结果为页数据同步失败,也即,若任意一个页数据同步失败,则不进行后续页数据的同步,而是判定页数据均同步失败,即终止整个同步任务,并清理脏数据,即已经同步至数据接收方的数据,重新开始所有页数据的全量传输。
123.当然,若所有页数据均同步成功,即不存在同步失败的页数据,整个同步任务即为成功,数据同步结果为页数据同步成功。
124.在一可选的实施方式中,该方法还包括:
125.若目标页数据同步失败,则更新失败计数器的失败计数。
126.其中,失败计数器用于对同步失败的页数据进行页数统计,在一些实施例中,可以创建一个失败计数器,若目标页数据同步失败,则更新失败计算器的失败计数,即将失败计算器的失败计数加一。
127.需要说明的是,可以采用任务管理器创建同步任务的任务表,在数据同步过程中,可以实时更新该任务表,图4为本技术实施例提供的任务表的示意图,如图4所示,该任务表包括的字段可以包括下述至少一项:批次号、总数据量、业务标识、页大小、同步完成页码、任务状态、失败页页码。
128.其中,批次号为待同步数据所对应的业务批次号,总数据量为待同步数据的总数据量,业务标识为待同步数据的业务标识,页大小为每个页数据中包括待同步子数据的数量,同步完成页码为数据同步过程中同步完成的页数据的页码,任务状态为任务管理器的状态,包括:未同步、同步中、同步完成,失败页页码为失败同步的页数据的页码。
129.在一可选的实施方式中,同步完成得到数据同步结果之后,还可以根据失败计数器的失败计数确定是否存在同步失败的页数据,若存在,则对同步失败的页数据进行重复同步,或者,直接确定待同步数据同步失败。下面结合图5、图6进行说明。
130.图5为本技术实施例提供的数据同步方法的流程示意图四,如图5所示,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果之后,该方法还包括:
131.s401、根据失败计数,确定页数据是否全部同步成功。
132.失败计数器用于对同步失败的页数据进行页数统计,将每个处理线程的页数据从数据提供方依次同步至数据接收方后,可以根据失败计数器的失败计数,确定页数据是否
全部同步成功,若失败计数为0,说明页数据全部同步成功,若失败计数不为0,说明页数据未全部同步成功,例如,失败计数为1,说明存在两个页数据未同步成功。
133.s402、若失败计数指示页数据未全部同步成功,则根据数据同步结果,确定页数据中同步失败的失败页数据的页码标识。
134.s403、采用失败页数据对应的处理线程,对失败页数据进行重复同步,直至达到预设同步停止条件。
135.若失败计数指示页数据未全部同步成功,则根据数据同步结果,确定页数据中同步失败的失败页数据的页码标识,然后采用失败页数据对应的处理线程,对失败页数据进行重复同步,直至达到预设同步停止条件,预设同步停止条件包括:达到预设补偿次数阈值,和/或,失败页数据同步成功,例如,失败页数据为第3个页数据,确定失败页数据的页码标识为3,采用第3个页数据对应的处理线程,即第1个处理线程,对第3个页数据进行重复同步,直至达到预设补偿次数阈值,和/或,第3个页数据同步成功。
136.若达到预设补偿次数阈值之后,失败页数据仍然同步失败,则可以发送预警提示,以提醒人工处理,例如,提醒人工排查网络情况、数据提供方的业务系统是否存在故障等。
137.s404、若达到预设同步停止条件,则更新数据同步结果为预设同步次数后失败页数据同步失败以及其它页数据同步成功,或者页数据全部同步成功。
138.若达到预设同步停止条件,则更新数据同步结果为预设同步次数后失败页数据同步失败以及其它页数据同步成功,或者页数据全部同步成功,也即,达到预设同步停止条件的情况下,包括两种数据同步结果,一种是重复同步后失败同步页数据仍然同步失败、以及其它页数据同步成功,一种是重复同步后失败同步页数据同步成功,即页数据全部同步成功。
139.图6为本技术实施例提供的数据同步方法的流程示意图五,如图6所示,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果之后,该方法还包括:
140.s501、根据失败计数,确定页数据是否全部同步成功。
141.s502、若失败计数指示页数据未全部同步成功,则更新数据同步结果为页数据同步失败。
142.根据失败计算确定页数据是否全部同步成功,若失败计数指示页数据未全部同步成功,则更新数据同步结果为页数据同步失败,也即,若任意页数据同步失败,则确定整个同步任务失败,则可以清理已经同步至数据接收方的数据,并创建一个新的任务管理器,重新开始所有页数据的全量传输。
143.图7为本技术实施例提供的数据同步方法的流程示意图六,如图7所示,根据失败计数,确定页数据是否全部同步成功之前,该方法还包括:
144.s601、判断多个处理线程正在同步的页数据中是否包括多个页数据中的终止页数据。
145.将待同步数据拆分为多个页数据,多个页数据中包括终止页数据,终止页数据为多个页数据中页码标识最大的页数据,在数据同步过程中,判断多个处理线程正在同步的页数据中是否包括多个页数据中的终止页数据。
146.s602、若任意处理线程正在同步的页数据为终止页数据,则将终止页数据同步完
成后,更新任务管理器的状态为同步完成。
147.若任意处理线程正在同步的页数据为终止页数据,则将终止页数据同步完成后,更新任务管理器的状态为同步完成,也即,在数据同步过程中,无论是否同步成功,判断每个处理线程正在同步的页数据是否为终止页数据,若任意处理线程正在同步终止页数据,则将终止页数据同步完成后,将任务管理器的状态由同步中更新为同步完成,需要说明的是,终止页数据为最后一个进行同步的页数据,终止页数据同步完成时,所有的处理线程均结束同步任务。
148.相应地,根据失败计数,确定页数据是否全部同步成功,包括:
149.s603、响应于任务管理器的状态更新为同步完成,则根据失败计数,确定页数据是否全部同步成功。
150.响应于任务管理器的状态更新为同步完成,则根据失败计数,确定页数据是否全部同步成功,这样可以避免在传输其他数据时更新失败计数器的失败计数,使得对页数据是否全部同步成功的判断不够准确。
151.图8为本技术实施例提供的数据同步方法的流程示意图七,如图8所示,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果之前,该方法还包括:
152.s701、判断多个处理线程待同步的页数据中是否包括多个页数据中的起始页数据。
153.s702、若任意处理线程待同步的页数据为起始页数据,则更新任务管理器的状态为同步中。
154.将待同步数据拆分为多个页数据,多个页数据中包括终止页数据,终止页数据为多个页数据中页码标识最小的页数据,如第1个页数据,在将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果之前,还可以判断多个处理线程待同步的页数据中是否包括多个页数据中的起始页数据,若任意处理线程待同步的页数据为起始页数据,则更新任务管理器的状态为同步中,即将任务管理器的状态由未同步更新为同步中。
155.相应地,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果,包括:
156.s703、响应于任务管理器的状态更新为同步中,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果。
157.响应于任务管理器的状态更新为同步中,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果,这样可以确保从起始页数据开始执行数据同步,避免在同步时对页数据有所遗漏。
158.图9为本技术实施例提供的数据同步装置的结构示意图,该装置可以应用于数据接收方。如图9所示,该装置包括:
159.处理模块801,用于将从数据提供方查询到的待同步数据拆分为多个页数据,每个页数据中包括多个待同步子数据;
160.获取模块802,用于获取数据接收方的任务并发度,任务并发度用于指示并行进行数据同步的处理线程的数量;
161.处理模块801,还用于根据预设的任务分配策略和任务并发度,将多个页数据分配给多个处理线程;
162.同步模块803,用于将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果。
163.在一可选的实施方式中,该装置还包括:
164.接收模块804,用于接收数据提供方发送的数据同步信号,数据同步信号中包括:待同步数据的数据标识和总数据量;
165.处理模块801,还用于根据数据标识和总数据量,采用任务管理器对待同步数据进行分页查询,任务管理器用于对待同步数据进行分页查询。
166.在一可选的实施方式中,同步模块803,具体用于:
167.采用每个处理线程,将对应的页数据从数据提供方依次同步至数据接收方;
168.若目标页数据同步失败,则跳过目标页数据,并采用目标页数据对应的处理线程,将目标页数据之后的页数据依次同步至数据接收方,得到数据同步结果,数据同步结果包括:目标页数据同步失败以及目标页数据之外的其它页数据同步成功。
169.在一可选的实施方式中,处理模块801,还用于:
170.若目标页数据同步失败,则更新失败计数器的失败计数,其中,失败计数器用于对同步失败的页数据进行页数统计。
171.在一可选的实施方式中,处理模块801,还用于:
172.根据失败计数,确定页数据是否全部同步成功;
173.若失败计数指示页数据未全部同步成功,则根据数据同步结果,确定页数据中同步失败的失败页数据的页码标识;
174.采用失败页数据对应的处理线程,对失败页数据进行重复同步,直至达到预设同步停止条件,预设同步停止条件包括:达到预设补偿次数阈值,和/或,失败页数据同步成功;
175.若达到预设同步停止条件,则更新数据同步结果为预设同步次数后失败页数据同步失败以及其它页数据同步成功,或者页数据全部同步成功。
176.在一可选的实施方式中,处理模块801,还用于:
177.根据失败计数,确定页数据是否全部同步成功;
178.若失败计数指示页数据未全部同步成功,则更新数据同步结果为页数据同步失败。
179.在一可选的实施方式中,处理模块801,还用于:
180.判断多个处理线程正在同步的页数据中是否包括多个页数据中的终止页数据;
181.若任意处理线程正在同步的页数据为终止页数据,则将终止页数据同步完成后,更新任务管理器的状态为同步完成;
182.处理模块801,具体用于:
183.响应于任务管理器的状态更新为同步完成,则根据失败计数,确定页数据是否全部同步成功。
184.在一可选的实施方式中,处理模块801,还用于:
185.判断多个处理线程待同步的页数据中是否包括多个页数据中的起始页数据;
186.若任意处理线程待同步的页数据为起始页数据,则更新任务管理器的状态为同步中;
187.处理模块801,具体用于:
188.响应于任务管理器的状态更新为同步中,将每个处理线程的页数据从数据提供方依次同步至数据接收方,得到数据同步结果。
189.在本实施例的数据同步装置中,实现过程和实现原理与上述数据同步方法类似,在此不再赘述。
190.图10为本技术实施例提供的电子设备的结构示意图,该设备可以通过上述数据接收方实现。如图10所示,该设备包括:处理器901、存储器902和总线903,存储器902存储有处理器901可执行的机器可读指令,当电子设备运行时,处理器901与存储器902之间通过总线903通信,处理器901执行机器可读指令,以执行上述数据同步方法。
191.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,所述处理器执行上述数据同步方法。
192.在本技术实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
193.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
194.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
195.另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
196.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
197.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
198.最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本申
请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的精神和范围。都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1