CN113961619A - 一种数据同步方法、装置、计算机设备及存储介质 - Google Patents
一种数据同步方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113961619A CN113961619A CN202111214265.8A CN202111214265A CN113961619A CN 113961619 A CN113961619 A CN 113961619A CN 202111214265 A CN202111214265 A CN 202111214265A CN 113961619 A CN113961619 A CN 113961619A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronized
- terminal
- timestamp
- current time
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种数据同步方法、装置、计算机设备及存储介质。本方案在接收到客户端账号通过一终端对目标业务的历史用户数据发送的数据同步请求时,确定终端请求同步的多条数据,获取每条数据对应的时间戳,然后将所有时间戳按照距离当前时刻最近的顺序进行排序,生成排序序列并将多条数据根据该排序序列依次向终端进行发送,以使终端可以最先接收到最新的数据,提供最新的数据给用户使用。同时,在该终端接收到最新的数据以及根据最新的数据进行数据更新的过程中,若目标业务在其他终端中产生新的数据,将新的数据发送至该终端,以使该终端完成根据最新的数据进行数据更新之后继续更新的数据,从而可以提高终端进行数据同步的效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据同步方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的发展,用户拥有的终端越来越多,在用户使用终端时,需要将用户在上一终端产生的数据同步至当前终端,以保证用户可以查看完整数据。
现有的数据同步技术,通过为每条数据记录下创建或更新的时间戳,当终端需要同步数据时,向服务器发送上次数据同步的时间戳,以使服务器根据时间戳返回该时间戳之后的数据。但是,现有的数据同步技术按照创新或更新的时间进行数据更新,当同步的数据量较大时,获取时间最新的数据需要等待较长时间,用户体验较差。另一方面,在等待大数据量的数据同步过程中,对于此期间使用上一终端产生的数据,无法作到及时同步,用户需要在当前终端上再次进行数据同步操作才能获取该部分数据。同时,对于同步过程中出现的数据异常情况,也缺乏对应的处理机制,使得同步过程较为繁琐。
发明内容
本申请实施例提供一种数据同步方法、装置、计算机设备及存储介质,可以提高用户体验。
本申请实施例提供了一种数据同步方法,包括:
接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,所述历史用户数据至少包括所述客户端账号通过所述第一终端和/或第二终端产生的用户数据;
根据所述数据同步请求从所述历史用户数据中确定所述第一终端的待同步数据,所述待同步数据包括当前时刻之前的历史用户数据,以及所述当前时刻之后所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;
获取所述待同步数据对应的时间戳;
基于所述待同步数据对应的时间戳距离所述当前时刻由近及远的顺序,向所述第一终端发送所述待同步数据,以使所述第一终端以距离所述当前时刻由近及远的顺序展示所述待同步数据。
相应的,本申请实施例还提供了一种数据同步装置,包括:
接收单元,用于接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,所述历史用户数据至少包括所述客户端账号通过所述第一终端和/或第二终端产生的用户数据;
第一确定单元,用于根据所述数据同步请求从所述历史用户数据中确定所述第一终端的待同步数据,所述待同步数据包括当前时刻之前的历史用户数据,以及所述当前时刻之后所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;
第一获取单元,用于获取所述待同步数据对应的时间戳;
第一发送单元,用于基于所述待同步数据对应的时间戳距离所述当前时刻由近及远的顺序,向所述第一终端发送所述待同步数据,以使所述第一终端以距离所述当前时刻由近及远的顺序展示所述待同步数据。
在一些实施例中,第一发送单元包括:
第一排序子单元,用于将每一待同步数据对应时间戳按照距离所述当前时刻由近及远的顺序进行排序,得到第一排列顺序;
第一发送子单元,用于基于所述第一排列顺序依次向所述第一终端发送每一时间戳对应的待同步数据。
在一些实施例中,该装置还包括:
第二确定单元,用于确定在所述当前时刻之后,所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;
第二获取单元,用于获取所述新增数据对应的时间戳;
第二发送单元,用于基于所述新增数据对应的时间戳,依次向所述第一终端发送距离所述当前时刻最接近的时间戳对应的新增数据。
在一些实施例中,该装置还包括:
第一检测单元,用于当检测到向所述第一终端发送所述新增数据的过程中出现异常,确定发送异常的新增数据,得第一异常数据;
第三获取单元,用于获取所述第一异常数据对应的时间戳;
第三发送单元,用于基于所述新增数据对应的时间戳,依次向所述第一终端发送距离所述第一异常数据对应的时间戳最近的时间戳对应的新增数据。
在一些实施例中,该装置还包括:
第三确定单元,用于从多个待同步数据对应的多个时间戳中确定距离所述当前时刻最近的第一时间戳,以及距离所述当前时刻最远的第二时间戳;
第四发送单元,用于基于所述第一时间戳以及所述第二时间戳,向所述第一终端发送距离所述第一时间戳最近的时间戳对应的待同步数据,同时向所述第一终端发送距离所述第二时间戳最近的时间戳对应的待同步数据。
在一些实施例中,第四发送单元包括:
第一确定子单元,用于根据所述待同步数据的数量从所述多个时间戳中确定位于所述第一时间戳与所述第二时间戳之间的第三时间戳;
第二排序子单元,用于将所述第一时间戳与所述第三时间戳之间的时间戳按照距离所述第一时间戳最近的顺序进行排序,得到第二排列顺序;
第三排序子单元,用于将所述第二时间戳与所述第三时间戳之间的时间戳按照距离所述第二时间戳最近的顺序进行排序,得到第三排列顺序;
第二发送子单元,用于基于所述第二排列顺序以及所述第三排列顺序,同时向所述第一终端发送所述待同步数据。
在一些实施例中,该装置还包括:
第四获取单元,用于获取所述待同步数据的数量;
执行单元,用于若所述数量大于预设数据,则执行所述从多个待同步数据对应的多个时间戳中确定距离所述当前时刻最近的第一时间戳,以及距离所述当前时刻最远的第二时间戳的步骤。
在一些实施例中,该装置还包括:
第二检测单元,用于当检测到向所述第一终端发送所述待同步数据的过程中出现异常,确定发送异常的待同步数据,得到第二异常数据;
第五获取单元,用于获取所述第二异常数据对应的时间戳;
第五发送单元,用于基于所述待同步数据对应的时间戳,依次向所述第一终端发送距离所述第二异常数据对应的时间戳最近的时间戳对应的待同步数据。
在一些实施例中,接收单元包括:
第二确定子单元,用于确定所述第一终端中已同步的所述历史用户数据中的数据,得到已同步数据;
筛选子单元,用于从所述历史用户数据的所有数据中筛选出除所述已同步数据之外的数据,得到所述待同步数据。
在一些实施例中,第二确定子单元具体用于:
基于所述标识信息确定所述第一终端中包括的所述历史用户数据中的数据,得到已同步数据。
本申请实施例通过在接收到客户端账号通过一终端对目标业务的历史用户数据发送的数据同步请求时,确定终端请求同步的多条数据,获取每条数据对应的时间戳,然后将所有时间戳按照距离当前时刻最近的顺序进行排序,生成排序序列,然后将多条数据根据该排序序列依次向终端进行发送,以使终端可以最先接收到最新的数据,并提供最新的数据给用户使用。同时,在该终端接收到最新的数据以及根据最新的数据进行数据更新的过程中,若目标业务在其他终端中产生新的数据,可以将新的数据发送至该终端,以使该终端完成根据最新的数据进行数据更新之后继续更新的数据,以此,可以提高终端进行数据同步的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据同步方法的流程示意图。
图2为本申请实施例提供的另一种数据同步方法的流程示意图。
图3为本申请实施例提供的一种数据同步装置的结构框图。
图4为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的数据同步技术,对于客户端通过终端产生的每条数据,记录该条数据的创建或更新的时间戳,其中,创建的时间戳指的是该条数据生成时的时刻,更新的时间戳指的是对于该条数据进行更新的时刻。进一步的,当终端需要进行数据同步时,可以通过获取上一次进行数据同步之后该条数据对应的更新时间戳。基于更新时间戳向服务端发送数据同步请求,以使服务端根据更新时间戳向终端返回该更新时间戳之后的数据。
申请人在长期的研究中发现,现有的数据同步技术存在以下缺陷:
(1)当同步的数据量较大时,获取时间最新的数据需要等待较长时间,用户体验较差。
(2)在等待大数据量的数据同步过程中,对于此期间使用上一终端产生的数据,无法作到及时同步,用户需要在当前终端上再次进行数据同步操作才能获取该部分数据。
(3)对于同步过程中出现的数据异常情况,也缺乏对应的处理机制,使得同步过程较为繁琐。
本申请实施例提供一种数据同步方法、装置、存储介质及计算机设备。具体地,本申请实施例的数据同步方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,该计算机设备可以是服务器,该服务器可以接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,历史用户数据至少包括客户端账号通过第一终端和/或第二终端产生的用户数据;根据数据同步请求从历史用户数据中确定第一终端的待同步数据,所述待同步数据包括当前时刻之前的历史用户数据,以及所述当前时刻之后所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;获取待同步数据对应的时间戳;基于待同步数据对应的时间戳距离所述当前时刻由近及远的顺序,向第一终端发送待同步数据,以使第一终端以距离当前时刻由近及远的顺序展示待同步数据。
基于上述问题,本申请实施例提供第一种数据同步方法、装置、计算机设备及存储介质,可以提高用户体验。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例提供一种数据同步方法,该方法可以由终端或服务器执行,本申请实施例以数据同步方法由终端执行为例来进行说明。
请参阅图1,图1为本申请实施例提供的一种数据同步方法的流程示意图。该数据同步方法的具体流程可以如下:
101、接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求。
其中,客户端或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的终端上,需要与服务端互相配合运行。
比如,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,这样在客户机和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
在本申请实施例中,客户端可以包括为用户提供各种业务的应用程序,比如,邮件应用,通讯应用,日历应用等。用户在通过客户端执行相应业务时,需要进行登录,也即通过用户建立的账号信息登录进入客户端,以方便用户使用时客户端保存用户使用过程中产生的数据。
其中,客户端可以安装在多个终端中,同一用户可以通过不同终端登录进入客户端进行使用。客户端账号指的是用户在客户端上登录的用户账号。第一终端指的是当前用户登录客户端账号使用的终端,第二终端指的是用户登录客户端账号使用的其他终端。目标业务可以为客户端支持的任一业务。
例如,客户端可以为通讯应用,通讯应用支持的业务可以包括:文字聊天、语音聊天、视频聊天等,则目标业务可以为文字聊天、语音聊天或视频聊天中的一种。
其中,历史用户数据指的是用户通过终端登录客户端账号时产生的数据,用户历史用户数据可以存储在服务器中,也即用户通过每一终端登录客户端账号使用时产生的数据可以存储在服务器中,以方便用户后续对历史用户数据的使用。在本申请实施例中,历史用户数据可以包括通过第一终端和/或第二终端登录客户端账号产生的数据。
具体的,当用户通过第二终端登录客户端账号使用时,在第二终端使用客户端时可以产生一些数据,当用户下一次通过第一终端登录客户端账号使用时,若用户需要使用之前的数据,也即通过第二终端产生的数据,则可以触发第一终端向服务器发送数据同步请求。
其中,数据同步请求指示向第一终端发送历史用户数据,以使第一终端同步客户端账号的所有数据。待同步数据为可以第一终端中未存储的历史用户数据。
102、根据数据同步请求从历史用户数据中确定第一终端的待同步数据。
其中,待同步数据包括当前时刻之前的历史用户数据,以及当前时刻之后客户端账号通过第二终端在所述目标业务中产生的新增数据。
在一些实施例中,为了提高数据同步效率,步骤“根据数据同步请求从历史用户数据中确定第一终端的待同步数据”,可以包括以下操作:
确定第一终端中已同步的历史用户数据中的数据,得到已同步数据;
从历史用户数据的所有数据中筛选出除已同步数据之外的数据,得到待同步数据。
其中,已同步数据指的是第一终端中已存储的部分历史用户数据,该部分历史用户数据可以包括:历史时间段内通过第一终端登录客户端账号时产生的数据,或者历史时间段内第一终端已同步的第二终端登录客户端账号时产生的数据。历史用户数据可以是日历日程数据、实时通讯聊天记录、浏览器访问记录、电商购买记录等。
在一些实施例中,数据同步请求中可以携带有第一终端的标识信息,为了保证数据同步准确性,步骤“确定第一终端中已获取历史用户数据中的数据,得到已同步数据”,可以包括以下操作:
基于标识信息确定第一终端中包括的历史用户数据中的数据,得到已同步数据。
其中,标识信息指的是终端标识,终端标识可以用于区分不同的终端,终端标识为字符串,比如,第一终端的终端标识可以为:SJ001。
在本申请实施例中,为了方便对不同终端登录客户端账号时产生的数据进行管理,可以在服务器中为每一终端划分一个存储区域,每一终端对应的存储区域对应存储有该终端中包括的客户端账号的数据信息。
例如,用户可以多个终端登录客户端账号,多个终端可以包括:终端A、终端B、终端C以及终端D,其中,终端A的终端标识可以为:SJ001,终端B的终端标识可以为:SJ002,终端C的终端标识可以为:SJ003,终端D的终端标识可以为:SJ004。
进一步的,服务器可以划分出四个存储区域,包括第一存储区域、第二存储区域、第三存储区域以及第四存储区域。其中,可以为终端A分配第一存储区域,为终端B分配第二存储区域,为终端C分配第三存储区域,为终端D分配第四存储区域。则可以将终端A中已有客户端账号的数据信息存储在第一存储区域,将终端B中已有客户端账号的数据信息存储在第二存储区域,将终端C中已有客户端账号的数据信息存储在第三存储区域,将终端D中已有客户端账号的数据信息存储在第四存储区域。
其中,为了节省服务器中的存储空间,可以为每条数据设置数据标识,仅需将终端中包括的客户端账号的数据标识与终端标识关联存储,而无需存储数据,从而可以节省存储空间。
比如,第一存储区域可以存储有终端A包括的客户端账号的数据标识,终端A包括的客户端账号的数据可以为:第一数据、第二数据、第三数据等,其中,第一数据的数据标识可以为:data1,第二数据的数据标识可以为:data2,第三数据的数据标识可以为:data2,则第一存储区域中存储的信息包括:SJ001、data1、data2、data3,表示终端A中包括有第一数据、第二数据和第三数据。
具体的,根据标识信息确定第一终端中包括的历史用户数据中的数据,也即根据第一终端的终端标识从多个存储区域中查找该终端标识对应的存储区域,然后根据该存储区域中的数据标识,即可以确定第一终端中已有的数据。从而可以得到第一终端已同步数据。
例如,第一终端可以为终端A,终端A的终端标识可以为:SJ001,进一步的,根据终端标识SJ001可以确定第一终端在服务器中对应的存储区域可以为:第一存储区域,则第一存储区域中包括的数据标识:data1、data2、data3,进一步的,根据数据标识可以确定第一终端中已有的客户端账号数据可以为:第一数据、第二数据和第三数据,得到已同步数据。
在确定第一终端中的已同步数据之后,可以根据已同步数据从历史用户数据中筛选出第一终端中不包括的数据,也即待同步数据。
例如,历史用户数据中可以包括:第一数据、第二数据、第三数据、...、第一百数据,第一终端中包括的已同步数据可以为:第一数据、第二数据、第三数据,则可以确定,第四数据至第一百数据为第一终端中不包括的数据,也即待同步数据。
103、获取待同步数据对应的时间戳。
其中,时间戳(timestamp),通常是一个字符序列,可以标识某一刻的时间。
在本申请实施例中,待同步数据对应的时间戳指的是待同步数据最新更新的时间点。比如,待同步数据可以包括:第一数据,第一数据产生的时间可以为:2021年9月9日10时18分23秒,则可以将该时间作为第一数据的时间戳进行保存,同理,用户在使用客户端账号时,产生的每一条数据都可以记录该数据对应的时间戳,以方便用户通过不同终端登录客户端账号时对数据进行同步。
104、基于待同步数据对应的时间戳距离当前时刻由近及远的顺序,向第一终端发送待同步数据。
具体的,基于待同步数据对应的时间戳距离当前时刻由近及远的顺序可以包括:依次向第一终端发送距离当前时刻最近的时间戳对应的待同步数据,也即优先向第一终端发送更新时间最新的待同步数据。
在一些实施例中,待同步数据的数量可以为多条;为了提高用户体验,步骤“基于待同步数据对应的时间戳距离当前时刻由近及远的顺序,向第一终端发送待同步数据”,可以包括以下操作:
将每一待同步数据对应时间戳按照距离当前时刻由近及远的顺序进行排序,得到第一排列顺序;
基于第一排列顺序依次向第一终端发送每一时间戳对应的待同步数据。
其中,当前时刻可以为服务器接收到数据同步请求时的时间点。
例如,待同步数据可以包括:第四数据、第五数据、第六数据、第七数据、第八数据等,其中,第四数据对应的时间戳A可以为:2021年9月1日10时18分23秒,第五数据对应的时间戳B可以为:2021年9月3日11时08分24秒,第六数据对应的时间戳C可以为:2021年9月5日02时18分00秒,第七数据对应的时间戳D可以为:2021年9月5日10时00分23秒,第八数据对应的时间戳E可以为:2021年9月8日12时18分23秒等,当前时刻可以为:2021年9月9日09时40分23秒。
进一步的,将每一待同步数据的时间戳按照距离当前时刻最近的顺序进行排序,得到排序后时间戳,也即第一排序序列为:时间戳E、时间戳D、时间戳C、时间戳B、时间戳A。
在确定第一排序序列之后,根据第一排序序列中各时间戳对应的待同步数据,依次向第一终端发送时间戳距离当前时刻最近的时间戳对应的待同步数据。比如,第一排序序列为:时间戳E、时间戳D、时间戳C、时间戳B、时间戳A,则可以依次向第一终端发送:第八数据、第七数据、第六数据、第五数据、第四数据,通过上述方式,可以将更新时间最新的数据同步至第一终端,以使第一终端优先展示更新时间最新的数据,方便用户查看。
在一些实施例中,服务器向第一终端发送待同步数据可能会需要一些时间,若在服务器向第一终端发送待同步数据的时间段内,用户通过第二终端登录客户端账号进行使用,则可能会在第二终端中产生客户端账号的目标业务的新的数据,需要将新的数据也同步至第一终端中,则在步骤“基于待同步数据对应的时间戳距离当前时刻由近及远的顺序,向第一终端发送待同步数据”之后,该方法还可以包括以下步骤:
确定在当前时刻之后,客户端账号通过第二终端在目标业务中产生的新增数据;
获取新增数据对应的时间戳;
基于新增数据对应的时间戳,依次向第一终端发送距离当前时刻最接近的时间戳对应的新增数据。
其中,新增数据指的是当前时刻直至完成向第一终端发送所以待同步数据时的时间段。
例如,服务器接收到第一终端发送的数据同步请求的时间可以为:2021年9月9日10时18分23秒,服务器完成向第一终端发送所有待同步数据时的时间可以为2021年9月9日10时20分23秒,则新增数据指的是在2021年9月9日10时18分23秒至2021年9月9日10时20分23秒的时间段内,用户通过第二终端使用客户端账号的目标业务产生的数据。
在一些实施例中,目标业务可以指的是聊天应用,客户端账号可以指的是用户在聊天应用中注册的用户个人账号,当用户初次通过第一客户端启动聊天应用并登陆用户个人账号时,需要将之前在聊天应用中产生的聊天数据,也即待同步数据,同步至该第一客户端。
然而,在第一客户端接收到待同步数据并根据待同步数据在聊天应用中进行数据同步时,可能会影响用户通过第一终端使用聊天软件进行聊天,若用户当前需要使用聊天软件进行聊天,可以通过第二终端启动聊天应用并登陆用户个人账号进行聊天。其中,在第一终端根据待同步数据执行数据同步期间,用户通过第二终端进行聊天产生了新的聊天数据,由于待同步数据中并未包括新的聊天数据,为了保证第一终端及时获取到最新聊天数据,以及避免再次发送数据同步请求,重新获取数据更新时间戳,可以在第一终端完成待同步数据的数据同步后,自动将新的聊天数据发送至第一终端,已完成第一终端实时的数据同步。
进一步的,获取每一新增数据对应的时间戳,然后根据新增数据对应的时间戳向第一终端发送新增数据,以使第一终端同步到客户端账号的最新数据。
其中,由于接收到第一终端发送的数据同步请求的时间至服务器完成向第一终端发送所有待同步数据时的时间段较短,则可以确定新增数据的数据量较少,基于此,可以将当前时刻作为同步新增数据的起点。无需额外确定同步新增数据的时间起点,从而可以提高数据同步效率。
在一些实施例中,为了便于区分当前时刻之前的待同步数据以及当前时刻之后的新增数据,可以为待同步数据以及新增数据分别添加不同的数据标识。
具体的,可以为待同步数据添加数据标识“forword-data”,以及可以为新增数据添加数据标识“backword-data”,比如,待同步数据可以包括:第一数据、第二数据、第三数据,则可以为每一待同步数据添加数据标识“forword-data”,得到待同步数据包括:第一数据-forword-data、第二数据-forword-data、第三数据-forword-data;新增数据可以包括:第十数据、第十一数据、第十二数据,则可以为每一新增数据添加数据标识“backword-data”,得到新增数据包括:第十数据-backword-data、第十一数据-backword-data、第十二数据-backword-data,以此,可以便于区分待同步数据和新增数据,方便后续对不同数据的不同使用方式。
例如,当前时刻指的是服务器接收到第一终端发送的数据同步请求的时间可以为:2021年9月9日10时18分23秒。新增数据可以包括:第十数据、第十一数据、第十二数据,其中,第十数据对应的时间戳A可以为:2021年9月9日10时18分50秒,第十一数据对应的时间戳B可以为:2021年9月9日10时19分23秒,第十二数据据对应的时间戳C可以为:2021年9月9日10时20分00秒。
进一步的,可以确定距离当前时刻最接近的时间戳对应的新增数据依次为:第十数据、第十一数据、第十二数据,则可以向第一中终端依次发送第十数据、第十一数据、第十二数据。
在一些实施例中,在向终端发送数据的过程中,为了节省数据同步时间,该方法还可以包括以下步骤:
当检测到向第一终端发送新增数据的过程中出现异常,确定发送异常的新增数据,得第一异常数据;
获取第一异常数据对应的时间戳;
基于新增数据对应的时间戳,依次向第一终端发送距离第一异常数据对应的时间戳最近的时间戳对应的新增数据。
在本申请实施例中,向第一终端发送新增数据的过程中出现异常可以指的是在向第一终端发送数据的过程中产生中断。异常可以包括多种,比如第一终端电量不足,客户端账号的系统出现故障,服务器与终端连接中断等多种异常情况。
其中,第一异常数据指的是产生异常时,服务器向第一终端发送的新增数据。比如,新增数据可以包括:第十数据、第十一数据、第十二数据,则在服务器向第一终端发送第十一数据时产生异常,则可以确定第十一数据为第一异常数据。
进一步的,获取第一异常数据的时间戳,并将该第一异常数据的时间戳进行保存。当异常问题解决后,服务器再次向第一终端发送新增数据时,即可以将该第一异常数据的时间戳作为数据同步的时间起点,避免服务器重新向第一终端重复发送相同新增数据,从而可以节省数据同步时间。
例如,新增数据可以包括:第十数据、第十一数据、第十二数据,其中,第十数据对应的时间戳A可以为:2021年9月9日10时18分50秒,第十一数据对应的时间戳B可以为:2021年9月9日10时19分23秒,第十二数据据对应的时间戳C可以为:2021年9月9日10时20分00秒。当服务器向第一终端发送第十一数据时出现异常,则可以保存第十一数据的时间戳B,当服务器再次向第一终端发送新增数据时,可以以第十一数据的时间戳B为起点,然后依次按照距离第一异常数据对应的时间戳最近的时间戳对应的新增数据,也即向发送第十一数据,然后发送第十二数据。
在一些实施例中,待同步数据的数量可以为多条,为了节省数据同步时间,在步骤“获取待同步数据对应的时间戳”之后,还可以包括以下步骤:
从多个待同步数据对应的多个时间戳中确定距离当前时刻最近的第一时间戳,以及距离当前时刻最远的第二时间戳;
基于第一时间戳以及第二时间戳,向第一终端发送距离第一时间戳最近的时间戳对应的待同步数据,同时向第一终端发送距离第二时间戳最近的时间戳对应的待同步数据。
例如,当前时刻可以为:2021年9月9日10时18分23秒。待同步数据可以包括:第四数据、第五数据、第六数据、第七数据、第八数据等,其中,第四数据对应的时间戳A可以为:2021年9月1日10时18分23秒,第五数据对应的时间戳B可以为:2021年9月3日11时08分24秒,第六数据对应的时间戳C可以为:2021年9月5日02时18分00秒,第七数据对应的时间戳D可以为:2021年9月5日10时00分23秒,第八数据对应的时间戳E可以为:2021年9月8日12时18分23秒等,当前时刻可以为:2021年9月9日09时40分23秒,则可以确定距离当前时刻最近的第一时间戳为:时间戳E(2021年9月8日12时18分23秒),以及距离当前时刻最远的第二时间戳为:时间戳A(2021年9月1日10时18分23秒)。
进一步的,可以分别以第一时间戳、第二时间戳为数据同步的起点时间,同时向第一终端发送距离第一时间戳最近的时间戳对应的待同步数据,以及距离第二时间戳最近的时间戳对应的待同步数据。也即启动两个数据同步进程,其中一个数据同步进程用于向第一终端发送距离第一时间戳最近的时间戳对应的待同步数据,另一数据同步进程用于向第一终端发送距离第二时间戳最近的时间戳对应的待同步数据。通过同步数据传输方式,缩短数据同步时间。
在一些实施例中,为了进一步节省数据同步时间,步骤“基于第一时间戳以及第二时间戳,向第一终端发送距离第一时间戳最近的时间戳对应的待同步数据,同时向第一终端发送距离第二时间戳最近的时间戳对应的待同步数据”,可以包括以下操作:
根据待同步数据的数量从多个时间戳中确定位于第一时间戳与第二时间戳之间的第三时间戳;
将第一时间戳与第三时间戳之间的时间戳按照距离第一时间戳最近的顺序进行排序,得到第二排列顺序;
将第二时间戳与第三时间戳之间的时间戳按照距离第二时间戳最近的顺序进行排序,得到第三排列顺序;
基于第二排列顺序以及第三排列顺序,同时向第一终端发送待同步数据。
例如,待同步数据可以包括:第四数据、第五数据、第六数据、第七数据、第八数据等,其中,第四数据对应的时间戳A可以为:2021年9月1日10时18分23秒,第五数据对应的时间戳B可以为:2021年9月3日11时08分24秒,第六数据对应的时间戳C可以为:2021年9月5日02时18分00秒,第七数据对应的时间戳D可以为:2021年9月5日10时00分23秒,第八数据对应的时间戳E可以为:2021年9月8日12时18分23秒等,当前时刻可以为:2021年9月9日09时40分23秒。可以确定待同步数据的数量为:5条。
进一步的,为了保证两个数据同步进程发送的待同步数据量保持平衡,可以根据多条待同步数据对应的时间轴确定位于中间的待同步数据对应的时间轴,得到第三时间轴,比如,第三时间轴可以为:时间戳C(2021年9月5日02时18分00秒)。
然后,根据第一时间戳与第三时间戳之间的时间戳按照距离第一时间戳最近的顺序进行排序,得到第二排列顺序可以为:时间戳E、时间戳D、时间戳C;以及根据第二时间戳与第三时间戳之间的时间戳按照距离第二时间戳最近的顺序进行排序,得到第三排列顺序可以为:时间戳A、时间戳B、时间戳C。
进一步的,服务器可以启动两个数据同步进程为:第一进程和第二进程。其中,在第一进程中,按照第二排列顺序依次向第一终端发送待同步数据,也即按照第八数据、第七数据、第六数据的顺序。在第二进程中,按照第三排列顺序依次向第一终端发送待同步数据,也即按照第四数据、第五数据、第六数据的顺序。其中,由于第一进程与第二进程中都包括有第六数据,为了避免重复向第一终端发送第六数据,可以根据第一进程与第二进程的处理速度,当第一进程优先发送第六数据时,停止第二进程发送第六数据,或者当第二进程优先发送第六数据时,停止第一进程发送第六数据。
在一些实施例中,为了节省处理资源,在步骤“从多个待同步数据对应的多个时间戳中确定距离当前时刻最近的第一时间戳,以及距离当前时刻最远的第二时间戳”之前,还可以包括以下步骤:
获取待同步数据的数量;
若数量大于预设数据,则执行从多个待同步数据对应的多个时间戳中确定距离当前时刻最近的第一时间戳,以及距离当前时刻最远的第二时间戳的步骤。
具体的,通过获取待同步数据的数据,判断待同步数据的数量是否大于预设数量,进一步确定是否需要开启多个数据同步进程同时同步数据。
例如,预设数量可以为100条,获取到待同步数据的数量可以为200条,则可以确定待同步数据的数量大于预设数量,则可以执行步骤从多个待同步数据对应的多个时间戳中确定距离当前时刻最近的第一时间戳,以及距离当前时刻最远的第二时间戳。
在一些实施例中,在向终端发送数据的过程中,为了节省数据同步时间,该方法还可以包括以下步骤:
当检测到向第一终端发送待同步数据的过程中出现异常,确定发送异常的待同步数据,得到第二异常数据;
获取第二异常数据对应的时间戳;
基于待同步数据对应的时间戳,依次向第一终端发送距离第二异常数据对应的时间戳最近的时间戳对应的待同步数据。
在本申请实施例中,向第一终端发送待同步数据的过程中出现异常可以指的是在向第一终端发送数据的过程中产生中断。异常可以包括多种,比如第一终端电量不足,客户端账号的系统出现故障,服务器与终端连接中断等多种异常情况。
其中,第二异常数据指的是产生异常时,服务器向第一终端发送的待同步数据。比如,待同步数据可以包括:第四数据、第五数据、第六数据、第七数据,则在服务器向第一终端发送第五数据时产生异常,则可以确定第五数据为第二异常数据。
进一步的,获取第二异常数据的时间戳,并将该第二异常数据的时间戳进行保存。当异常问题解决后,服务器再次向第一终端发送待同步数据时,即可以将该第二异常数据的时间戳作为数据同步的时间起点,避免服务器重新向第一终端重复发送相同待同步数据,从而可以节省数据同步时间。
例如,待同步数据可以包括:第四数据、第五数据、第六数据,第七数据。其中,第四数据对应的时间戳A可以为:2021年9月1日10时18分23秒,第五数据对应的时间戳B可以为:2021年9月3日11时08分24秒,第六数据对应的时间戳C可以为:2021年9月5日02时18分00秒,第七数据对应的时间戳D可以为:2021年9月5日10时00分23秒。
进一步的,当服务器向第一终端发送第五数据时出现异常,则可以保存第五数据的时间戳B,当服务器再次向第一终端发送待同步数据时,可以以第五数据的时间戳B为起点,然后依次按照距离第五数据对应的时间戳B最近的时间戳对应的待同步数据,由于初始待同步数据的发送顺序为:第七数据、第六数据、第五数据、第四数据,则恢复发送后,只需要向终端发送第四数据。
本申请实施例公开了一种数据同步方法,该方法包括:接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,历史用户数据至少包括客户端账号通过第一终端和/或第二终端产生的用户数据;根据数据同步请求从历史用户数据中确定第一终端的待同步数据,待同步数据包括当前时刻之前的历史用户数据,以及当前时刻之后客户端账号通过第二终端在目标业务中产生的新增数据;获取待同步数据对应的时间戳;基于待同步数据对应的时间戳距离当前时刻由近及远的顺序,向第一终端发送待同步数据,以使第一终端以距离当前时刻由近及远的顺序展示待同步数据,以便用户可以通过第一终端优先查看到客户端账号的目标业务的最新数据。以此,可以提高用户体验。
根据上述介绍的内容,下面将举例来进一步说明本申请的数据同步方法。请参阅图2,图2为本申请实施例提供的另一种数据同步方法的流程示意图。以该数据同步方法应用于服务器为例,具体流程可以如下:
201、服务器接收目标终端针对指定应用的数据同步请求,根据数据同步请求从指定应用的数据库中确定多条待同步数据。
在本申请实施例中,指定应用可以为用户需要通过账号信息进行登录的应用,比如,指定应用可以为日程应用、聊天应用等。用户可以通过多个终端登录指定应用。其中,终端可以为智能手机或者电脑等支持使用指定应用的设备。
其中,用户可以在不同时间段内通过不同终端登录指定应用。例如,在2021年9月7日,用户可以通过终端A登录指定应用,然后在2021年9月8日,用户可以通过终端B登录指定应用。
或者,用户可以在相同时间段内通过不同终端登录指定应用。例如,在2021年9月7日,用户可以通过终端A、终端B同时登录指定应用。
进一步的,用户在通过不同终端登录指定应用时,会产生不同的数据。比如,指定应用可以为聊天应用,用户首先通过终端A登录聊天应用后,可以与其他用户互发信息,产生多条聊天数据,然后用户在终端A退出聊天应用,通过终端B登录聊天应用,此时,终端B需要获取用户在终端A上产生的聊天数据,然后同步至终端B,以使终端B获取到用户在聊天应用中的所有数据,方便用户通过终端B使用该聊天软件。
其中,数据同步请求指的是请求获取指定应用的数据库中的数据。指定应用的数据库指的是指定应用在服务器中的数据库,该数据库存储有指定应用在所有终端上产生的所有数据。
比如,指定应用在终端A中进行使用产生了100条数据,指定应用在终端B使用产生了200条数据,则该100条数据与该200条数据可以存储在指定应用的数据库中。
首先,服务器可以检测目标终端是否存储有指定应用的数据,若目标终端中未存储有指定应用的数据,则可以确定指定应用的所有数据为待同步数据;若目标终端中存储有部分指定应用的数据,则可以确定指定应用的所有数据中除部分数据之外的数据为待同步数据。
例如,指定应用的数据库中包括有:第一数据、第二数据、第三数据...第一百数据等,若在目标终端中未检测到上述第一数据至第一百数据,则可以确定第一数据至第一百数据为待同步数据。
又例如,指定应用的数据库中包括有:第一数据、第二数据、第三数据、...、第一百数据等,若在目标终端中检测到第一数据至第五十数据,则可以确定第五十一数据至第一百数据为待同步数据。
202、服务器获取每一待同步数据在数据库的时间轴上的时间戳。
在本申请实施例中,指定应用的数据库中的每一条数据在创建或者更新时,都会记录数据创建或者更新时的时间戳。
其中,时间轴指的是通过互联网技术,依据时间顺序,把一方面或多方面的事件串联起来,形成相对完整的记录体系,再运用图文的形式呈现给用户;时间轴可以运用于不同领域,最大的作用就是把过去的事物系统化、完整化、精确化。
而在本申请实施例中,通过时间轴记录指定应用的数据库中的每一条数据对应的时间戳。比如,数据库中可以包括:第一数据、第二数据、第三数据、第四数据、第五数据等,其中,第一数据对应的时间戳可以为时间戳A,第二数据对应的时间戳可以为时间戳B,第三数据对应的时间戳可以为时间戳C,第四数据对应的时间戳可以为时间戳D,第五数据对应的时间戳可以为时间戳E。然后可以根据各时间戳按照时间先后顺序依次记录在时间轴上,同时记录每一时间戳对应的数据。则时间轴可以为:时间戳A对应第一数据、时间戳B对应第二数据、时间戳C对应第三数据、时间戳D对应第四数据、时间戳E对应第五数据。
进一步的,根据时间轴上记录的时间戳与其对应的数据,从时间轴上获取每一待同步数据对应的时间戳。
例如,时间轴包括:时间戳A对应第一数据、时间戳B对应第二数据、时间戳C对应第三数据、时间戳D对应第四数据、时间戳E对应第五数据,待同步数据可以为:第五数据,第四数据,第三数据,则分别从时间轴上获取第五数据的时间戳为时间戳E,获取第四数据的时间戳为时间戳D,获取第三数据的时间戳为时间戳C。
203、服务器按照时间戳距离当前时间最近的顺序,对多个待同步数据进行排序,得到排序后待同步数据序列。
具体的,将待同步数据的时间戳按照距离当前时间由近及远的顺序进行排列。
例如,待同步数据可以为:第五数据,第四数据,第三数据。其中,第五数据的时间戳E的时间可以为:2021年9月8日12时30分40秒,第四数据的时间戳D可以为:2021年9月8日17时36分23秒,第三数据的时间戳C可以为:2021年9月8日19时19分58秒,当前时间可以为:2021年9月8日21时00分00秒,则按照时间戳距离当前时间由近及远的顺序对各个待同步数据的时间戳进行排序,得到时间戳的排序序列为:时间戳C、时间戳D、时间戳E,进一步的,基于时间戳对应的数据对待同步数据进行排序,得到排序后待同步数据序列可以为:第三数据,第四数据,第五数据。
204、服务器根据排序后待同步数据序列依次向目标终端发送待同步数据。
在本申请实施例中,指定应用的数据中,距离当前时间最近的数据的对于用户使用指定应用的有效性更高。
具体的,根据排序后待同步数据序列向目标终端发送待同步数据,可以将时间戳与当前时间最接近的待同步数据最先发送给目标终端,以使目标终端可以最先获取到指定应用的最新数据。
例如,排序后待同步数据序列可以为:第三数据,第四数据,第五数据,则服务器可以首先将第三数据发送给目标终端,然后依次将第四数据、第五数据发送给目标终端,其中,第三数据的时间戳为距离当前时间最近的数据,目标终端在获取到第三数据后,可以首先基于第三数据同步指定应用的数据。以此,是的目标终端可以优先同步指定应用中的最新最近的数据,在同步到最新最近的数据之后,目标终端就可以立即将最新数据展现给用户。而对于其他数据,可以在后台继续同步,不影响用户前台的展示和使用。
在一些实施例中,服务器可以提供数据双向同步接口,也就是提供根据每条数据的时间戳向后找出N条数据返回并带有时间最后的一条数据的时间戳,以及提供根据每条数据的时间戳向前找出N条数据返回并带有时间最早的一条数据的时间戳。
进一步的,创建向前同步时间戳forwardTimeTag,向后同步时间戳backwardTimeTag,以及首次同步时的时间戳thieTimeTag。其中,向前同步时间戳forwardTimeTag这个参数可以自行定义,比如,若需要优先同步当天的数据,就可以把forwardTimeTag设置为当天零点。每次向前同步完成后,都可以更新forwardTimeTag时间戳,来向前推进数据。直至向前同步数据全部更新完毕。
其中,首次同步时的时间戳thisTimeTag表示向前同步的起点时间戳,因为当向前同步完成后,需要向后同步,数据的向前同步向后同步需要做到无缝衔接,所以需要记录向前同步的起点时间戳,然后把该起点时间戳作为向后同步的起点。
其中,向后同步时间戳backwardTimeTag这个参数是需要向前同步完成后,开始向后同步才需要使用到,每次向后同步完数据,都会更新backwardTimeTag时间戳,来向后推进数据,直至向后数据全部更新完毕。也就是所有数据更新完毕。
具体的,当终端首次同步数据时,thisTimeTag、backwardTimeTag、forwardTimeTag三个参数可以设置默认值。此时终端提供数据同步时的时间戳thieTimeTag向服务器请求向前同步,并将thieTimeTag保存在本地。服务器会将thieTimeTag之前的数据以分页的形式从后往前返回给终端。每次分页数据返回终端时,终端需要将此时间戳记录到forwardTimeTag,并且下一次向前同步时,以forwardTimeTag为时间戳依据进行同步。当最早的数据也同步完成后,终端会收到向前的同步数据为空。此时,终端就需要根据thieTimeTag继续向后同步数据,终端将分页同步的时间戳更新到backwardTimeTag,并且下次向后分页同步时,以backwardTimeTag为时间戳进行同步,直到所有数据同步完成。
本申请实施例公开了一种数据同步方法,该方法包括:接收目标终端针对指定应用的数据同步请求,根据数据同步请求从指定应用的数据库中确定多条待同步数据,获取每一待同步数据在数据库的时间轴上的时间戳,服务器按照时间戳距离当前时间最近的顺序,对多个待同步数据进行排序,得到排序后待同步数据序列,服务器根据排序后待同步数据序列依次向目标终端发送待同步数据。以此,可以提高用户体验。
为便于更好的实施本申请实施例提供的数据同步方法,本申请实施例还提供一种基于上述数据同步方法的数据同步装置。其中名词的含义与上述数据同步方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图3,图3为本申请实施例提供的一种数据同步装置的结构框图,该装置包括:
接收单元301,用于接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,所述历史用户数据至少包括所述客户端账号通过所述第一终端和/或第二终端产生的用户数据;
第一确定单元302,用于根据所述数据同步请求从所述历史用户数据中确定所述第一终端的待同步数据,所述待同步数据包括当前时刻之前的历史用户数据,以及所述当前时刻之后所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;
第一获取单元303,用于获取所述待同步数据对应的时间戳;
第一发送单元304,用于基于所述待同步数据对应的时间戳距离所述当前时刻由近及远的顺序,向所述第一终端发送所述待同步数据,以使所述第一终端以距离所述当前时刻由近及远的顺序展示所述待同步数据。
在一些实施例中,第一发送单元304可以包括:
第一排序子单元,用于将每一待同步数据对应时间戳按照距离所述当前时刻由近及远的顺序进行排序,得到第一排列顺序;
第一发送子单元,用于基于所述第一排列顺序依次向所述第一终端发送每一时间戳对应的待同步数据。
在一些实施例中,该装置还可以包括:
第二确定单元,用于确定在所述当前时刻之后,所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;
第二获取单元,用于获取所述新增数据对应的时间戳;
第二发送单元,用于基于所述新增数据对应的时间戳,依次向所述第一终端发送距离所述当前时刻最接近的时间戳对应的新增数据。
在一些实施例中,该装置还可以包括:
第一检测单元,用于当检测到向所述第一终端发送所述新增数据的过程中出现异常,确定发送异常的新增数据,得第一异常数据;
第三获取单元,用于获取所述第一异常数据对应的时间戳;
第三发送单元,用于基于所述新增数据对应的时间戳,依次向所述第一终端发送距离所述第一异常数据对应的时间戳最近的时间戳对应的新增数据。
在一些实施例中,该装置还可以包括:
第三确定单元,用于从多个待同步数据对应的多个时间戳中确定距离所述当前时刻最近的第一时间戳,以及距离所述当前时刻最远的第二时间戳;
第四发送单元,用于基于所述第一时间戳以及所述第二时间戳,向所述第一终端发送距离所述第一时间戳最近的时间戳对应的待同步数据,同时向所述第一终端发送距离所述第二时间戳最近的时间戳对应的待同步数据。
在一些实施例中,第四发送单元可以包括:
第一确定子单元,用于根据所述待同步数据的数量从所述多个时间戳中确定位于所述第一时间戳与所述第二时间戳之间的第三时间戳;
第二排序子单元,用于将所述第一时间戳与所述第三时间戳之间的时间戳按照距离所述第一时间戳最近的顺序进行排序,得到第二排列顺序;
第三排序子单元,用于将所述第二时间戳与所述第三时间戳之间的时间戳按照距离所述第二时间戳最近的顺序进行排序,得到第三排列顺序;
第二发送子单元,用于基于所述第二排列顺序以及所述第三排列顺序,同时向所述第一终端发送所述待同步数据。
在一些实施例中,该装置还可以包括:
第四获取单元,用于获取所述待同步数据的数量;
执行单元,用于若所述数量大于预设数据,则执行所述从多个待同步数据对应的多个时间戳中确定距离所述当前时刻最近的第一时间戳,以及距离所述当前时刻最远的第二时间戳的步骤。
在一些实施例中,该装置还可以包括:
第二检测单元,用于当检测到向所述第一终端发送所述待同步数据的过程中出现异常,确定发送异常的待同步数据,得到第二异常数据;
第五获取单元,用于获取所述第二异常数据对应的时间戳;
第五发送单元,用于基于所述待同步数据对应的时间戳,依次向所述第一终端发送距离所述第二异常数据对应的时间戳最近的时间戳对应的待同步数据。
在一些实施例中,接收单元301可以包括:
第二确定子单元,用于确定所述第一终端中已同步的所述历史用户数据中的数据,得到已同步数据;
筛选子单元,用于从所述历史用户数据的所有数据中筛选出除所述已同步数据之外的数据,得到所述待同步数据。
在一些实施例中,第二确定子单元具体可以用于:
基于所述标识信息确定所述第一终端中包括的所述历史用户数据中的数据,得到已同步数据。
本申请实施例公开了一种数据同步装置,通过接收单元301接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,所述历史用户数据至少包括所述客户端账号通过所述第一终端和/或第二终端产生的用户数据,第一确定单元302根据所述数据同步请求从所述历史用户数据中确定所述第一终端的待同步数据,所述待同步数据包括当前时刻之前的历史用户数据,以及所述当前时刻之后所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据,第一获取单元303获取所述待同步数据对应的时间戳,第一发送单元304基于所述待同步数据对应的时间戳距离所述当前时刻由近及远的顺序,向所述第一终端发送所述待同步数据,以使所述第一终端以距离所述当前时刻由近及远的顺序展示所述待同步数据。以此,可以提高用户体验。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为服务器。如图4所示,图4为本申请实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备500进行整体监控。
在本申请实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,历史用户数据至少包括客户端账号通过第一终端和/或第二终端产生的用户数据;根据数据同步请求从历史用户数据中确定第一终端的待同步数据,待同步数据包括当前时刻之前的历史用户数据,以及当前时刻之后客户端账号通过第二终端在目标业务中产生的新增数据;获取待同步数据对应的时间戳;基于待同步数据对应的时间戳距离当前时刻由近及远的顺序,向第一终端发送待同步数据,以使第一终端以距离当前时刻由近及远的顺序展示待同步数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图4所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、引导信息、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与显示面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图4中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,历史用户数据至少包括客户端账号通过第一终端和/或第二终端产生的用户数据;根据数据同步请求从历史用户数据中确定第一终端的待同步数据,待同步数据包括当前时刻之前的历史用户数据,以及当前时刻之后客户端账号通过第二终端在目标业务中产生的新增数据;获取待同步数据对应的时间戳;基于待同步数据对应的时间戳距离当前时刻由近及远的顺序,向第一终端发送待同步数据,以使第一终端以距离当前时刻由近及远的顺序展示待同步数据。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种数据同步方法中的步骤。例如,该计算机程序可以执行如下步骤:
接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,历史用户数据至少包括客户端账号通过第一终端和/或第二终端产生的用户数据;
根据数据同步请求从历史用户数据中确定第一终端的待同步数据,待同步数据包括当前时刻之前的历史用户数据,以及当前时刻之后客户端账号通过第二终端在目标业务中产生的新增数据;
获取待同步数据对应的时间戳;基于待同步数据对应的时间戳距离当前时刻由近及远的顺序,向第一终端发送待同步数据,以使第一终端以距离当前时刻由近及远的顺序展示待同步数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种数据同步方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据同步方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据同步方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种数据同步方法,其特征在于,所述方法包括:
接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,所述历史用户数据至少包括所述客户端账号通过所述第一终端和/或第二终端产生的用户数据;
根据所述数据同步请求从所述历史用户数据中确定所述第一终端的待同步数据,所述待同步数据包括当前时刻之前的历史用户数据,以及所述当前时刻之后所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;
获取所述待同步数据对应的时间戳;
基于所述待同步数据对应的时间戳距离所述当前时刻由近及远的顺序,向所述第一终端发送所述待同步数据,以使所述第一终端以距离所述当前时刻由近及远的顺序展示所述待同步数据。
2.根据权利要求1所述的方法,其特征在于,所述待同步数据的数量为多条;
所述基于所述待同步数据对应的时间戳距离当前时刻由近及远的顺序,向所述第一终端发送所述待同步数据,包括:
将每一待同步数据对应时间戳按照距离所述当前时刻由近及远的顺序进行排序,得到第一排列顺序;
基于所述第一排列顺序依次向所述第一终端发送每一时间戳对应的待同步数据。
3.根据权利要求1所述的方法,其特征在于,在所述于所述待同步数据对应的时间戳距离当前时刻由近及远的顺序,向所述第一终端发送所述待同步数据之后,还包括:
确定在所述当前时刻之后,所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;
获取所述新增数据对应的时间戳;
基于所述新增数据对应的时间戳,依次向所述第一终端发送距离所述当前时刻最接近的时间戳对应的新增数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当检测到向所述第一终端发送所述新增数据的过程中出现异常,确定发送异常的新增数据,得第一异常数据;
获取所述第一异常数据对应的时间戳;
基于所述新增数据对应的时间戳,依次向所述第一终端发送距离所述第一异常数据对应的时间戳最近的时间戳对应的新增数据。
5.根据权利要求1所述的方法,其特征在于,所述待同步数据的数量为多条;
在所述获取所述待同步数据对应的时间戳之后,还包括:
从多个待同步数据对应的多个时间戳中确定距离所述当前时刻最近的第一时间戳,以及距离所述当前时刻最远的第二时间戳;
基于所述第一时间戳以及所述第二时间戳,向所述第一终端发送距离所述第一时间戳最近的时间戳对应的待同步数据,同时向所述第一终端发送距离所述第二时间戳最近的时间戳对应的待同步数据。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第一时间戳以及所述第二时间戳,向所述第一终端发送距离所述第一时间戳最近的时间戳对应的待同步数据,同时向所述第一终端发送距离所述第二时间戳最近的时间戳对应的待同步数据,包括:
根据所述待同步数据的数量从所述多个时间戳中确定位于所述第一时间戳与所述第二时间戳之间的第三时间戳;
将所述第一时间戳与所述第三时间戳之间的时间戳按照距离所述第一时间戳最近的顺序进行排序,得到第二排列顺序;
将所述第二时间戳与所述第三时间戳之间的时间戳按照距离所述第二时间戳最近的顺序进行排序,得到第三排列顺序;
基于所述第二排列顺序以及所述第三排列顺序,同时向所述第一终端发送所述待同步数据。
7.根据权利要求5所述的方法,其特征在于,在所述从多个待同步数据对应的多个时间戳中确定距离所述当前时刻最近的第一时间戳,以及距离所述当前时刻最远的第二时间戳之前,还包括:
获取所述待同步数据的数量;
若所述数量大于预设数据,则执行所述从多个待同步数据对应的多个时间戳中确定距离所述当前时刻最近的第一时间戳,以及距离所述当前时刻最远的第二时间戳的步骤。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到向所述第一终端发送所述待同步数据的过程中出现异常,确定发送异常的待同步数据,得到第二异常数据;
获取所述第二异常数据对应的时间戳;
基于所述待同步数据对应的时间戳,依次向所述第一终端发送距离所述第二异常数据对应的时间戳最近的时间戳对应的待同步数据。
9.根据权利要求1所述的方法,其特征在于,所述根据所述数据同步请求从所述历史用户数据中确定待同步数据,包括:
确定所述第一终端中已同步的所述历史用户数据中的数据,得到已同步数据;
从所述历史用户数据的所有数据中筛选出除所述已同步数据之外的数据,得到所述待同步数据。
10.根据权利要求9所述的方法,其特征在于,所述数据同步请求携带所述第一终端的标识信息;
所述确定所述第一终端中已获取所述历史用户数据中的数据,得到已同步数据,包括:
基于所述标识信息确定所述第一终端中包括的所述历史用户数据中的数据,得到已同步数据。
11.一种数据同步装置,其特征在于,所述装置包括:
接收单元,用于接收客户端账号通过第一终端发送的针对目标业务的历史用户数据的数据同步请求,其中,所述历史用户数据至少包括所述客户端账号通过所述第一终端和/或第二终端产生的用户数据;
第一确定单元,用于根据所述数据同步请求从所述历史用户数据中确定所述第一终端的待同步数据,所述待同步数据包括当前时刻之前的历史用户数据,以及所述当前时刻之后所述客户端账号通过所述第二终端在所述目标业务中产生的新增数据;
第一获取单元,用于获取所述待同步数据对应的时间戳;
第一发送单元,用于基于所述待同步数据对应的时间戳距离所述当前时刻由近及远的顺序,向所述第一终端发送所述待同步数据,以使所述第一终端以距离所述当前时刻由近及远的顺序展示所述待同步数据。
12.一种计算机设备,包括存储器,处理器及存储在存储器上并在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至10任一项所述的数据同步方法。
13.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至10任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111214265.8A CN113961619A (zh) | 2021-10-19 | 2021-10-19 | 一种数据同步方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111214265.8A CN113961619A (zh) | 2021-10-19 | 2021-10-19 | 一种数据同步方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961619A true CN113961619A (zh) | 2022-01-21 |
Family
ID=79465120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111214265.8A Pending CN113961619A (zh) | 2021-10-19 | 2021-10-19 | 一种数据同步方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961619A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915550A (zh) * | 2022-05-30 | 2022-08-16 | 深圳市政元软件有限公司 | 移动互联网大数据的存储配置方法及系统 |
CN116126976A (zh) * | 2023-04-06 | 2023-05-16 | 之江实验室 | 一种数据同步的方法、装置、存储介质及电子设备 |
-
2021
- 2021-10-19 CN CN202111214265.8A patent/CN113961619A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915550A (zh) * | 2022-05-30 | 2022-08-16 | 深圳市政元软件有限公司 | 移动互联网大数据的存储配置方法及系统 |
CN116126976A (zh) * | 2023-04-06 | 2023-05-16 | 之江实验室 | 一种数据同步的方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210119953A1 (en) | Method and system for synchronizing instant messages between multiple clients | |
CN106059894B (zh) | 一种消息处理方法和装置 | |
EP3382994A1 (en) | Method and apparatus for updating data | |
CN106302996B (zh) | 消息显示方法及装置 | |
CN113961619A (zh) | 一种数据同步方法、装置、计算机设备及存储介质 | |
CN107341033A (zh) | 一种数据统计方法、装置、电子设备和存储介质 | |
CN110445667B (zh) | 一种链路延迟检测方法、装置、存储介质以及终端 | |
CN111090687A (zh) | 数据处理方法及装置、系统、计算机可读存储介质 | |
CN111586126A (zh) | 小程序预下载方法、装置、设备及存储介质 | |
CN111177076A (zh) | 一种文件信息管理方法、装置、设备及存储介质 | |
CN112363871A (zh) | 一种数据回档方法、装置及存储介质 | |
CN113609107A (zh) | 数据库管理方法、装置、电子设备及存储介质 | |
US10757060B2 (en) | Message notification method and terminal | |
CN115987852A (zh) | 接口服务状态的检测方法、装置、计算机设备及存储介质 | |
CN109389977B (zh) | 一种语音交互方法及装置 | |
CN111359210B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN112382292A (zh) | 基于语音的控制方法和装置 | |
CN113242171A (zh) | 一种会话消息管理的方法以及相关装置 | |
CN111555894A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN114817419A (zh) | 基于Kafka的媒资数据存储方法、装置、电子设备及存储介质 | |
CN114785722B (zh) | 监控数据处理方法、装置及计算机可读存储介质 | |
CN113765985B (zh) | 用于同步消息的方法和装置 | |
CN111400397B (zh) | 数据同步方法、装置、设备和计算机存储介质 | |
CN115421995A (zh) | 日志回捞方法、装置、电子设备及存储介质 | |
CN116962332A (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 |