一种基于同步帧的数量同步方法及同步装置制造方法及图纸

技术编号:30902314 阅读:22 留言:0更新日期:2021-11-22 23:46
本发明专利技术公开了一种基于同步帧的数量同步方法及同步装置,所述方法在获取第一设备的数量更新事件消息后向第二设备发起数量更新请求,第二设备根据数量更新请求进行数量更新;在第二设备的数量更新成功时,根据统计对象名称以及变更数量更新同步数据库的数量,获得第一统计数量;根据第一统计数量以及所述统计对象名称生成同步帧并发送至第二设备,使第二设备在接收同步帧时反馈当前时刻统计对象在第二数据库中的当前数量;计算第一统计数量和当前数量的差值,在差值不为零时根据差值对第一数据库中统计对象的数量进行同步;通过实施本发明专利技术能够提高数量同步的准确性。发明专利技术能够提高数量同步的准确性。发明专利技术能够提高数量同步的准确性。

【技术实现步骤摘要】
一种基于同步帧的数量同步方法及同步装置


[0001]本专利技术涉及计算机
,尤其涉及一种基于同步帧的数量同步方法及同步装置。

技术介绍

[0002]开发特定领域的应用软件中,尤其在面向多租户的SaaS平台,租户的数据(比如商品数量、医院床位、消费卡剩余次数等)托管在平台上,这些数据的源头有可能来自其它的外部系统,需要保证内部系统与外部系统的数据一致,并且要求实时、准确。
[0003]内部系统与外部系统的数据同步一般分为两个部分:一是内部系统在统计对象(例如商品数量、医院床位、消费卡剩余次数等)的数量发生变动时,需要将变动后的数据同步至外部系统。二是外部系统在统计对象的数量发生变动时,需要将变动后的数据同步至外部系统。以电商领域中商品数量为例,如果商品库存数据依赖外部系统,那么一般需要做两个方面的数据同步;一个方面是内部系统的库存数据发生变动时(例如:用户下单、用户取消订单等),需要将内部系统变动后的库存数据同步至外部系统。另一个方面是外部系统的库存数据变动时(例如:认为添加了商品的数量),需要将外部系统变动后的库存数据同步至内部系统。
[0004]为解决内部系统与外部系统之间的统计对象的数量同步问题,现有技术中采用如下方法,一方面,内部系统在统计对象的数量发送变动时,向外部系统发送数量更新请求,以使外部系统在接收到数量更新请求后,对外部系统中统计对象的数量进行更新,通过这一步完成内部系统统计对象数量变动时的数据同步。另一方面设定定时任务,每隔一段时间,内部系统会去获取外部系统的最新数据,进行全量同步,将外部系统所对应的数据库的统计对象的数量,覆盖内部系统的数据库,通过这一步保证外部系统中统计对象的数量变动情况能够同步至内部系统。
[0005]但是采用上述方法,通过定时任务进行外部系统数据库和内部系统数据的全量同步,一旦内部系统中的统计对象的数量在短时间内出现多次变动,会导致同步错误。例如初始状态时,外部系统和内部系统商品A的库存量都是10。在短时间内,用户进行了两次下单,第一次下单数量是2个,第二次下单数量是3个,内部系统中商品A的库存量在短时间内出现多次变动,商品A的库存量立刻进行了两次扣减变成5,并先后向外部系统发送了两次数量更新请求,外部系统在接收第一次数量更新请求后,进行数量更新,将外部系统中商品A的库存量更新为8,待接收第二次数量更新请求后在继续扣减,若在外部系统接收了第一次数量更新请求,但未接收第二次数量更新请求时,定时任务启动,那么外部系统会将接收第一次数量更新请求后的库存量,全量同步给内部系统,即将外部系统中商品A的库存量8,覆盖内部系统中商品A的库存量5,这样使得内部系统中商品A的库存量由实际的5变成了8,造成了数量同步错误的问题。

技术实现思路

[0006]本专利技术实施例提供一种基于同步帧的数量同步方法,能提高数量同步的准确性。
[0007]本专利技术一实施例提供了一种基于同步帧的数量同步方法,包括:获取第一设备的数量更新事件消息;其中,所述第一设备在统计对象的数量变更时,将第一数据库所存储的统计对象的数量进行更新并生成所述数量更新事件消息;所述第一数据库为所述第一设备所对应的数据库;所述数量更新事件消息包括:统计对象名称以及变更数量;
[0008]根据所述数量更新事件消息向第二设备发起数量更新请求,以使所述第二设备在接收所述数量更新请求时,根据所述统计对象名称以及所述变更数量,将第二数据库所存储的统计对象的数量进行更新;其中,所述第二数据库为所述第二设备所对应的数据库;
[0009]在所述第二数据库所存储的统计对象的数量更新成功时,根据所述统计对象名称以及所述变更数量更新同步数据库中所存储的统计对象的数量,获得所述统计对象的第一统计数量;其中,在所述第一数据库、所述第二数据库以及所述同步数据库中,所述统计对象的初始数量一致;
[0010]根据所述第一统计数量以及所述统计对象名称生成同步帧,并将所述同步帧发送至所述第二设备,以使所述第二设备在接收所述同步帧时,反馈当前时刻所述第二数据库中统计对象的当前数量;
[0011]计算所述当前数量与所述第一统计数量的差值,在所述差值不为零时,根据所述差值对所述第一数据库中统计对象的数量进行同步。
[0012]进一步的,在获取第一设备的数量更新事件消息之前,还包括:
[0013]接收第一设备发送的全量同步申请指令;其中,所述全量同步申请指令包括需要进行全量同步的统计对象的名称;
[0014]根据全量同步申请指令向所述第二设备发起全量同步请求,以使所述第二设备在接收所述全量同步请求时,反馈所述统计对象的初始数量;
[0015]根据所述统计对象的初始数量,对所述统计对象在所述同步数据库中的数量进行全量同步,并生成全量同步帧;
[0016]将所述全量同步帧发送至所述第一设备,以使所述第一设备在接收所述全量同步帧后,根据所述统计对象的初始数量,对所述统计对象在所述第一数据库中的数量进行全量同步。
[0017]进一步的,在所述第二数据库所存储的统计对象的数量更新失败时,向所述第一设备反馈数量更新失败信息,以使所述第一设备在接收所述数量更新失败信息后,撤销对所述第一数据库所存储的统计对象的数量的更新。
[0018]进一步的,在预设时长内未获取到所述第一设备的数量更新事件消息,则向所述第二设备发起第二全量同步请求,以使所述第二设备在接收所述第二全量同步请求时,反馈所述统计对象的现有数量;
[0019]根据所述统计对象的现有数量,对所述统计对象在所述同步数据库中的数量进行全量同步,并生成第二全量同步帧;
[0020]将所述第二全量同步帧发送至所述第一设备,以使所述第一设备在接收所述第二全量同步帧后,根据所述统计对象的现有数量,对所述统计对象在所述第一数据库中的数量进行全量同步。
[0021]进一步的,所述获取第一设备的数量更新事件消息,具体包括:
[0022]从预设消息队列中获取所述数量更新事件消息;其中,所述第一设备在生成所述数量更新事件消息后,将所述数量更新事件消息存储在所述预设消息队列中。
[0023]在上述方法项实施例的基础上,本专利技术对应提供了一种基于同步帧的数量同步装置,所述数量同步装置,包括:更新事件消息获取模块、数量更新请求发起模块、本地数量更新模块、同步帧生成模块以及差值增量同步模块;
[0024]所述更新事件消息获取模块,用于获取第一设备的数量更新事件消息;其中,所述第一设备在统计对象的数量变更时,将第一数据库所存储的统计对象的数量进行更新并生成所述数量更新事件消息;所述第一数据库为所述第一设备所对应的数据库;所述数量更新事件消息包括:统计对象名称以及变更数量;
[0025]所述数量更新请求发起模块,用于根据所述数量更新事件消息向第二设备发起数量更新请求,以使所述第二设备在接收所述数量更新请求时,根据所述统计对象名称以及所述变更数量,将第二数据库所存储的统计对象的数量进行更新;其中,所述第二数据库为所述第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于同步帧的数量同步方法,其特征在于,包括:获取第一设备的数量更新事件消息;其中,所述第一设备在统计对象的数量变更时,将第一数据库所存储的统计对象的数量进行更新并生成所述数量更新事件消息;所述第一数据库为所述第一设备所对应的数据库;所述数量更新事件消息包括:统计对象名称以及变更数量;根据所述数量更新事件消息向第二设备发起数量更新请求,以使所述第二设备在接收所述数量更新请求时,根据所述统计对象名称以及所述变更数量,将第二数据库所存储的统计对象的数量进行更新;其中,所述第二数据库为所述第二设备所对应的数据库;在所述第二数据库所存储的统计对象的数量更新成功时,根据所述统计对象名称以及所述变更数量,更新同步数据库中所存储的统计对象的数量,获得所述统计对象的第一统计数量;其中,在所述第一数据库、所述第二数据库以及所述同步数据库中,所述统计对象的初始数量一致;根据所述第一统计数量以及所述统计对象名称生成同步帧,并将所述同步帧发送至所述第二设备,以使所述第二设备在接收所述同步帧时,反馈当前时刻所述第二数据库中统计对象的当前数量;计算所述当前数量与所述第一统计数量的差值,在所述差值不为零时,根据所述差值对所述第一数据库中统计对象的数量进行同步。2.如权利要求1所述的基于同步帧的数量同步方法,其特征在于,在获取第一设备的数量更新事件消息之前,还包括:接收第一设备发送的全量同步申请指令;其中,所述全量同步申请指令包括需要进行全量同步的统计对象的名称;根据全量同步申请指令向所述第二设备发起全量同步请求,以使所述第二设备在接收所述全量同步请求时,反馈所述统计对象的初始数量;根据所述统计对象的初始数量,对所述统计对象在所述同步数据库中的数量进行全量同步,并生成全量同步帧;将所述全量同步帧发送至所述第一设备,以使所述第一设备在接收所述全量同步帧后,根据所述统计对象的初始数量,对所述统计对象在所述第一数据库中的数量进行全量同步。3.如权利要求1所述的基于同步帧的数量同步方法,其特征在于,还包括:在所述第二数据库所存储的统计对象的数量更新失败时,向所述第一设备反馈数量更新失败信息,以使所述第一设备在接收所述数量更新失败信息后,撤销对所述第一数据库所存储的统计对象的数量的更新。4.如权利要求1所述的基于同步帧的数量同步方法,其特征在于,还包括:在预设时长内未获取到所述第一设备的数量更新事件消息,则向所述第二设备发起第二全量同步请求,以使所述第二设备在接收所述第二全量同步请求时,反馈所述统计对象的现有数量;根据所述统计对象的现有数量,对所述统计对象在所述同步数据库中的数量进行全量同步,并生成第二全量同步帧;将所述第二全量同步帧发送至所述第一设备,以使所述第一设备在接收所述第二全量同步帧后,根据所述统计对象的现有数量,对所述统计对象在所述第一数据库中的数量进
行全量同步。5.如权利要求1所述的基于同步帧的数量同步方法,其特征在于,所述获取第一设备的数量更新事件消息,具体包括:从预设消息队列中获取所述数量更新事件消息;其中,所述第一设备在生成所述数量更新事件消息后,将所述数量更新事件消息存储在所述预设消息队列中。6.一种基于同步帧的数量同步装置,其特征在于,包括...

【专利技术属性】
技术研发人员:林少章黄伟李斌
申请(专利权)人:广州有信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1