掌桥专利:专业的专利平台
掌桥专利
首页

数据同步方法、装置、设备及介质

文献发布时间:2024-01-17 01:26:37


数据同步方法、装置、设备及介质

技术领域

本发明涉及客户端与服务端通讯领域,具体涉及一种数据同步方法、装置、设备及介质。

背景技术

系统之间进行数据交互的方式多种多样,而通过调用接口进行数据交互是现在互联网中最常见的方式,这种方式能够进行快速高效的数据交互。而客户端与服务端之间通过接口通信往往是同步通信,但当系统间通信出现异常时导致系统数据交互请求失败,进而导致双边甚至多边系统的数据不一致。

目前,通常利用服务端的反馈来判断是否客户端与服务端的数据是否同步,并且通过设定次数或时间的重试机制解决交互失败达到数据一致性,但均不受客户端的业务逻辑约束,因此难以达到客户端的需要。

发明内容

本发明要解决的技术问题是为了克服现有技术中数据同步不受客户端的业务逻辑约束的缺陷,提供一种数据同步方法、装置、设备及介质。

本发明是通过下述技术方案来解决上述技术问题:

本发明的第一方面提供了一种数据同步方法,应用于客户端,所述数据同步方法包括:

向服务端发起业务请求时,先启动延迟消息,再向所述服务端发送所述业务请求;其中,所述延迟消息用于延迟特定时间后启动包括所述业务请求的信息的消息队列;

当所述消息队列启动后,根据所述消息队列查询所述业务请求的业务状态;

根据所述业务状态确定与所述服务端的数据是否同步;

若确定与所述服务端的数据未同步则执行相应的同步操作;其中,所述同步操作用于实现数据同步。

较佳地,所述根据所述业务状态确定与所述服务端的数据是否同步的步骤具体包括:

若所述业务状态为初始化状态,则确定与所述服务端的数据未同步;

或,

若所述业务状态为等待状态,则确定与所述服务端的数据未同步。

较佳地,所述业务请求包括业务执行请求和业务查询请求;

所述若确定与所述服务端的数据未同步则执行相应的同步操作的步骤具体包括:

若业务状态为初始化状态,则向所述服务端发送所述业务执行请求;

或,

若所述业务状态为等待状态,则向所述服务端发送业务查询请求;其中,所述业务查询请求用于查询所述业务执行请求在所述服务端中的进程。

较佳地,所述数据同步方法还包括:

接收所述服务端的响应信号;其中,所述响应信号包括所述服务端响应所述业务请求的信号;

根据所述响应信号确定是否根据所述业务请求对应的预设规则再次发送所述消息队列;其中,所述预设规则包括所述消息队列发送的预设间隔时间。

较佳地,所述消息队列包括设定标签;

所述根据所述响应信号确定是否根据所述业务请求对应的预设规则再次发送所述消息队列的步骤包括:

若所述响应信号包括所述设定标签,则根据所述响应信号同步所述业务请求的数据并终止发送所述消息队列;

或,

若响应信号不包括所述设定标签,则根据所述预设规则再次发送所述消息队列。

较佳地,所述数据同步方法还包括:

当所述消息队列发送的总次数达到次数阈值或总时间达到时间阈值,则终止发送所述消息队列;其中,所述次数阈值或时间阈值为客户端的预设阈值。

较佳地,所述终止发送所述消息队列之后还包括:将所述消息队列发送至数据库进行后续处理。

本发明的第二方面提供了一种数据同步装置,应用于客户端,所述数据同步装置包括:

发送模块,用于向服务端发起业务请求时,先启动延迟消息,再向所述服务端发送所述业务请求;其中,所述延迟消息用于延迟特定时间后启动包括所述业务请求的信息的消息队列;查询模块,用于当所述消息队列启动后,根据所述消息队列查询所述业务请求的业务状态;

确定模块,用于根据所述业务状态确定与所述服务端的数据是否同步;

执行模块,用于若所述确定模块确定与所述服务端的数据未同步则执行相应的同步操作;其中,所述同步操作用于实现数据同步。

本发明的第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并用于在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的数据同步方法。

本发明的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数据同步方法。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:本发明通过向服务端发起业务请求时,先启动延迟消息,再向所述服务端发送所述业务请求,以此当延迟特定时间后,客户端能够主动根据所述消息队列查询和判断与服务端的数据是否同步,并且根据所述业务状态来执行相应的同步操作,不仅能够处理时间间隔较长的通信异常导致的数据不同步而不需要人为介入,并且客户端能够根据不同的业务状态去执行不同的同步操作来达到数据一致性,从而更有效的达到客户端的需要,提升系统之间数据传输的稳定性和实用性。

附图说明

图1为本发明实施例1提供的一种数据同步方法的流程图。

图2为本发明实施例1提供的一种数据同步方法的应用场景图。

图3为本发明实施例2提供的一种数据同步装置的模块示意图。

图4为本发明实施例3提供的一种电子设备的结构示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例提供了一种数据同步方法,应用于客户端,如图1所示,数据同步方法包括:

S1、向服务端发起业务请求时,先启动延迟消息,再向所述服务端发送业务请求;其中,所述延迟消息用于延迟特定时间后启动包括所述业务请求的信息的消息队列;S2、当消息队列启动后,根据消息队列查询业务请求的业务状态;

S3、根据业务状态确定与服务端的数据是否同步;

S4、若确定与服务端的数据未同步则执行相应的同步操作;其中,同步操作用于实现数据同步。

在具体实施中,业务请求可包括扣款、退款、垫款、完结、变更商户号等等,当客户端向服务端发起业务请求时,需先启动延迟消息,再向服务端发送具体的业务请求。具体地,延迟消息为包括具体业务请求信息的消息队列,用于延迟特定时间后被客户端启动处理。

在本实施例中,以扣款请求为例,当客户端向服务端发起扣款请求时,先启动延迟消息,再向服务端发送扣款请求;延迟特定时间后,客户端启动处理包括扣款请求的消息队列,根据消息队列查询扣款请求在客户端的业务状态;根据业务状态确定与服务端的扣款数据是否同步;若客户端确定与服务端的扣款数据未同步则执行相应的同步操作。

在一可实施的方案中,如图2所示,步骤S3具体包括:

(1)若业务状态为初始化状态,则确定与服务端的数据未同步;

(2)若业务状态为等待状态,则确定与服务端的数据未同步。

在本实施例中,以扣款业务为例,客户端与服务端交互包括:

(1)客户端发起扣款请求:先启动延迟消息,再向服务端的支付中心发送扣款请求;

(2)服务端通过异步回调退款结果至客户端。若该退款业务的业务状态为初始化状态,则客户端未成功向服务端发送退款请求,即数据未同步;

若该退款业务的业务状态为等待状态,则客户端成功向服务端的支付中心发送退款请求,而未收到服务端的退款结果,即数据未同步。

在具体实施中,客户端启动消息队列后,根据消息队列里包含的扣款业务的具体信息查询该扣款业务的业务状态。

具体地,客户端可根据该扣款业务的业务名称查看与服务端进行数据传输的接口状态,由此获得该扣款业务的业务状态。

具体地,客户端还可根据该扣款业务查询其在数据库的数据状态,若标志数据为初始化状态,则该业务状态为初始化;若标志数据为等待状态,则该业务状态为等待状态。

在具体实施中,业务请求包括业务执行请求和业务查询请求;

在一可实施的方案中,如图2所示,步骤S4具体包括:

(1)若业务状态为初始化状态,则向服务端发送业务执行请求;

(2)若业务状态为等待状态,则向服务端发送业务查询请求;其中,业务查询请求用于查询业务执行请求在服务端中的进程。

在一可实施的方案中,数据同步方法还包括:

S5、接收服务端的响应信号;其中,响应信号包括服务端响应业务请求的信号;

S6、根据响应信号确定是否根据业务请求对应的预设规则再次发送消息队列;其中,预设规则包括消息队列发送的预设间隔时间。

在具体实施中,不同的业务请求对应不同预设规则,以此来适应不同业务请求的需求。

在具体实施中,消息队列包括设定标签。

在本实施例中,客户端向消息队列中添加设定标签,该设定标签为客户端访问服务端的唯一键,能作为幂等检查器,也可作为轮询机制的主要查询条件。

在一可实施的方案中,步骤S6包括:

(1)若响应信号包括设定标签,则根据所述响应信号同步所述业务请求的数据并终止发送消息队列;

(2)若响应信号不包括设定标签,则根据预设规则再次发送消息队列。

在本实施例中,客户端通过向服务端发送带有设定标签的消息队列,当接收到带有设定标签的响应信号时,则表示客户端与服务端上次交互成功,根据响应信号的信息同步该业务请求的数据并停止向服务端发送消息队列;当响应信号未带有设定标签,则表示客户端与服务端的数据同步仍然失败,则根据预设规则再次发送消息队列。

在本实施例中,若该扣款请求的预设规则为每隔2

在一可实施的方案中,数据同步方法还包括:

S7、当消息队列发送的总次数达到次数阈值或总时间达到时间阈值,则终止发送消息队列;其中,次数阈值或时间阈值为客户端的预设阈值。

在一可实施的方案中,步骤S7之后还包括:

S8、将消息队列发送至数据库进行后续处理。

在具体实施中,当消息队列发送的总次数超过客户端预设的最大次数阈值或者总时间超过客户端预设的最大时间阈值,则认为数据重试失败,将该消息队列持久化到数据库中,供人工或Job处理。

本发明通过向服务端发起业务请求时,先启动延迟消息,再向所述服务端发送所述业务请求,以此当延迟特定时间后,客户端能够主动根据所述消息队列查询和判断与服务端的数据是否同步,并且根据所述业务状态来执行相应的同步操作,不仅能够处理时间间隔较长的通信异常导致的数据不同步而不需要人为介入,并且客户端能够根据不同的业务状态去执行不同的同步操作来达到数据一致性,从而更有效的达到客户端的需要,提升系统之间数据传输的稳定性和实用性。

实施例2

本实施例提供了本发明的第二方面提供了一种数据同步装置20,应用于客户端,并且用于实现前述实施例1的数据同步方法,如图3所示,数据同步装置20包括:

发送模块21,用于向服务端发起业务请求时,先启动延迟消息,再向服务端发送业务请求;其中,延迟消息用于延迟特定时间后启动包括业务请求的信息的消息队列;

查询模块22,用于当消息队列启动后,根据消息队列查询业务请求的业务状态;

确定模块23,用于根据业务状态确定与服务端的数据是否同步;

执行模块24,用于若所述确定模块确定与服务端的数据未同步则执行相应的同步操作;其中,所述同步操作用于实现数据同步。

在具体实施中,若业务状态为初始化状态,则确定模块23确定客户端与服务端的数据未同步;或,若业务状态为等待状态,则确定模块23确定客户端与服务端的数据未同步。

在具体实施中,业务请求包括业务执行请求和业务查询请求,若业务状态为初始化状态,则执行模块24向服务端发送业务执行请求;或,若业务状态为等待状态,则执行模块24向服务端发送业务查询请求;其中,业务查询请求用于查询业务执行请求在服务端中的进程。

在可选的一种实施方式中,数据同步装置还包括重试模块,重试模块用于接收所述服务端的响应信号,并根据所述响应信号确定是否根据所述业务请求对应的预设规则再次发送所述消息队列;其中,所述响应信号包括所述服务端响应所述业务请求的信号,所述预设规则包括所述消息队列发送的预设间隔时间。

在可选的一种实施方式中,消息队列包括设定标签,若所述响应信号包括所述设定标签,重试模块还用于根据所述响应信号同步所述业务请求的数据并终止发送所述消息队列;或,若响应信号不包括所述设定标签,重试模块还用于根据所述预设规则再次发送所述消息队列。

在可选的一种实施方式中,数据同步装置还包括处理模块,当所述消息队列发送的总次数达到次数阈值或总时间达到时间阈值,处理模块用于终止发送所述消息队列;其中,所述次数阈值或时间阈值为客户端的预设阈值。

在可选的一种实施方式中,处理模块还用于将所述消息队列发送至数据库进行后续处理。

实施例3

本实施例提供了一种电子设备,如图4所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述实施例1的数据同步方法。图4显示的电子设备40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

电子设备40可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备40的组件可以包括但不限于:上述至少一个处理器41、上述至少一个存储器42、连接不同系统组件(包括存储器42和处理器41)的总线43。

总线43包括数据总线、地址总线和控制总线。

存储器42可以包括易失性存储器,例如随机存取存储器(RAM)421和/或高速缓存存储器422,还可以进一步包括只读存储器(ROM)423。

存储器42还可以包括具有一组(至少一个)程序模块424的程序/实用工具425,这样的程序模块424包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器41通过运行存储在存储器42中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的数据同步方法。

电子设备40也可以与一个或多个外部设备44(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口45进行。并且,模型生成的设备40还可以通过网络适配器46与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器46通过总线43与模型生成的设备40的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例4

本发明还提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例1的数据同步方法。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1的数据同步方法。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

相关技术
  • 基于双控的存储设备数据同步方法、装置、设备及介质
  • 产品数据的数据同步方法、装置、计算机设备及存储介质
  • 数据同步方法、装置、计算机设备及存储介质
  • 区块链的数据同步方法、装置、计算机设备及存储介质
  • 产品数据同步方法、装置、计算机设备及存储介质
  • 时间同步方法、数据同步方法、装置、系统、设备和介质
  • 时间同步方法、数据同步方法、装置、系统、设备和介质
技术分类

06120116212505