一种离线数据同步方法及装置制造方法及图纸

技术编号:21484974 阅读:23 留言:0更新日期:2019-06-29 06:35
本发明专利技术实施例提供一种离线数据同步方法及装置,该方法包括:根据被同步的对象的操作类型,创建对应的操作实体,操作实体用于存储需要被同步到服务器的离线数据;执行同步中心无限循环操作,同步中心无限循环操作用于持续检测是否存在可被同步的操作实体;对于可被同步的操作实体,若对应的离线数据不存在有依赖关系的数据,根据操作实体创建的先后顺序进行多线程并发同步,若对应的离线数据存在有依赖关系的数据,根据可被同步的操作实体的依赖先后顺序进行同步。本发明专利技术实施例提供的离线数据同步方法及装置,能够同时同步多条离线,其中一个同步操作失败或冲突,其他同步能顺利进行,且能够同步有依赖关系的数据。

【技术实现步骤摘要】
一种离线数据同步方法及装置
本专利技术实施例涉及移动端应用领域,尤其涉及一种离线数据同步方法及装置。
技术介绍
为了更好的用户体验,越来越多的移动端应用会需要支持离线场景的使用。如果要支持离线场景的使用,在没有网络的情况下使用app就会产生很多离线数据,而这些离线数据之间往往都有着复杂的依赖关系,数据同步的先后顺序不同可能会造成不同的结果并且引发错误,如何同步这些复杂离线数据是一个急需解决的问题。为了更好的用户体验,实现在网络可用和不可用的情况无下感知的同步离线数据,需要先将用户所有的操作数据先存储在本地数据库中,在网络可用的情况下自动同步这些离线数据。现有技术有两种离线数据同步方案:方案一是严格按照离线数据创建的时间顺序逐个同步到服务器,先创建的先同步。只要按照期望的执行顺序创建离线数据,需要先执行的数据先创建,这种方式就可以很好解决数据依赖关系复杂的数据同步,方案二是使用多线程并发高效的同步离线数据,这种方式可以高效的同步离线数据。方案一和方案二都有明显的缺点,方案一中,首先,如果其中一个同步操作失败了或者和server端数据发生冲突了,整个同步队列将会被阻塞;其次,由于一次只能同步一条离线,因此同步所需时间相对比较长,效率比较低。方案二中,由于离线数据是并发执行,顺序不确定,因此数据之间不能有任何依赖关系。
技术实现思路
本专利技术实施例为克服上述技术缺陷,提供一种离线数据同步方法及装置。第一方面,本专利技术实施例提供一种离线数据同步方法,包括:根据被同步的对象的操作类型,创建对应的操作实体,所述操作实体用于存储需要被同步到服务器的离线数据;执行同步中心无限循环操作,所述同步中心无限循环操作用于持续检测是否存在可被同步的操作实体;对于所述可被同步的操作实体,若对应的离线数据不存在有依赖关系的数据,根据操作实体创建的先后顺序进行多线程并发同步,若对应的离线数据存在有依赖关系的数据,根据所述可被同步的操作实体的依赖先后顺序进行同步。第二方面,本专利技术实施例提供一种离线数据同步装置,包括:创建模块,用于根据被同步的对象的操作类型,创建对应的操作实体,所述操作实体用于存储需要被同步到服务器的离线数据;执行模块,用于执行同步中心无限循环操作,所述同步中心无限循环操作用于持续检测是否存在可被同步的操作实体;同步模块,用于对于所述可被同步的操作实体,若对应的离线数据不存在有依赖关系的数据,根据操作实体创建的先后顺序进行多线程并发同步,若对应的离线数据存在有依赖关系的数据,根据所述可被同步的操作实体的依赖先后顺序进行同步。第三方面,本专利技术实施例提供一种电子设备,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面所述的一种离线数据同步方法。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述一种离线数据同步方法。本专利技术实施例提供的一种离线数据同步方法及装置,提供了一种离线数据同步引擎,能够同时同步多条离线,其中一个同步操作失败或冲突,其他同步能顺利进行,且能够同步有依赖关系的数据,解决了现有技术中并发同步数据不能有依赖关系的问题。附图说明图1为本专利技术实施例提供的一种离线数据同步方法的流程示意图;图2为本专利技术实施例提供的一种离线数据同步装置的结构示意图;图3为本专利技术实施例提供的一种电子设备的实体结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的一种离线数据同步方法的流程示意图,如图1所示,包括:步骤11,根据被同步的对象的操作类型,创建对应的操作实体,所述操作实体用于存储需要被同步到服务器的离线数据;步骤12,执行同步中心无限循环操作,所述同步中心无限循环操作用于持续检测是否存在可被同步的操作实体;步骤13,对于所述可被同步的操作实体,若对应的离线数据不存在有依赖关系的数据,根据操作实体创建的先后顺序进行多线程并发同步,若对应的离线数据存在有依赖关系的数据,根据所述可被同步的操作实体的依赖先后顺序进行同步。本专利技术实施例提供的一种离线数据同步方法,包括一个离线数据同步引擎,该离线数据同步引擎主要包含以下四部分:OperationEntity:操作实体,用来存储离线数据的数据模型SyncCenter:同步中心,一个用来同步离线数据的并发队列SyncContext:SyncCenter运行的上下文,主要包含一些开关参数以及网络状态监控等OperationHandler:操作处理器,如何同步一条具体的离线数据的实现本专利技术实施例中,根据被同步的对象的操作类型,创建对应的操作实体,当在对一个需要被同步到服务器的对象进行操作时,就会创建一个对应类型的OperationEntity,例如新建一条数据、删除一条数据、刷新数据、修改数据等。总而言之,任何和服务器相关的操作都可以抽象成一个OperationEntity。创建操作实体后,执行SyncCenter无限循环操作,SyncCenter的核心是一个运行在子线程中的无限循环,持续地检测是否有可被同步的OperationEntity需要被执行,SyncCenter支持并发同步。对于可被同步的操作实体,本专利技术实施例将对应的离线数据分为两部分处理,一部分是不包含有其他依赖关系的数据,另一部分是包含有其他依赖关系的数据。若对应的离线数据不存在有依赖关系的数据,此时对这部分的离线数据,根据操作实体创建的先后顺序进行多线程并发同步,若对应的离线数据存在有依赖关系的数据,根据可被同步的操作实体的依赖先后顺序进行同步。SyncCenter的一次循环的步骤如下:步骤201,队列激活和SyncContext设置,SyncContext即SyncCenter运行的上下文,主要包含一些开关参数以及网络状态监控等,设置失败则在一定时间段内进入休眠状态,之后继续进行设置,直至设置成功;步骤202,将操作实体队列加入操作池中;步骤203,检测操作池中的待处理状态的操作实体,对于不处于待处理状态的操作实体,执行步骤202,对应处于待处理状态的操作实体,执行步骤204;步骤204,对处于待处理状态的操作实体请求锁定,锁定成功后执行步骤205;步骤205,将操作队列的状态设置为同步中,开始离线同步;步骤206判断待处理状态的操作实体对应的离线数据是否存在有依赖关系的其他数据,若存在,执行步骤207,若不存在,执行步骤208;步骤207,找到存在依赖关系的其他数据,判断该其他数据的同步状态是否为同步中,若是,执行步骤209,若否,执行步骤210;步骤208,对离线数据进行多线程并发同步,同步成功后解除锁定,循环结束;步骤209,将对应的操作实体的ID加入到操作池中,并将其同步状态设置为待处理;步骤210,将当前操作实体的ID设置为依赖操作实体的ID,执行步骤2本文档来自技高网...

【技术保护点】
1.一种离线数据同步方法,其特征在于,包括:根据被同步的对象的操作类型,创建对应的操作实体,所述操作实体用于存储需要被同步到服务器的离线数据;执行同步中心无限循环操作,所述同步中心无限循环操作用于持续检测是否存在可被同步的操作实体;对于所述可被同步的操作实体,若对应的离线数据不存在有依赖关系的数据,根据操作实体创建的先后顺序进行多线程并发同步,若对应的离线数据存在有依赖关系的数据,根据所述可被同步的操作实体的依赖先后顺序进行同步。

【技术特征摘要】
1.一种离线数据同步方法,其特征在于,包括:根据被同步的对象的操作类型,创建对应的操作实体,所述操作实体用于存储需要被同步到服务器的离线数据;执行同步中心无限循环操作,所述同步中心无限循环操作用于持续检测是否存在可被同步的操作实体;对于所述可被同步的操作实体,若对应的离线数据不存在有依赖关系的数据,根据操作实体创建的先后顺序进行多线程并发同步,若对应的离线数据存在有依赖关系的数据,根据所述可被同步的操作实体的依赖先后顺序进行同步。2.根据权利要求1所述的方法,其特征在于,所述操作类型具体包括:新建、删除、刷新和修改中的至少一种。3.根据权利要求1所述的方法,其特征在于,所述操作实体包含以下属性:所述操作实体的同步状态、所述操作实体的同步相关数据、所述操作实体的依赖实体和所述操作实体的唯一标识中的至少一种。4.根据权利要求3所述的方法,其特征在于,所述操作实体的同步状态具体包括:待处理、同步中、同步发生错误状态和同步发生冲突。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取网络状态信息;若根据所述网络状态信息判断获知网络不可用,暂停同步中心无限循环操作;获取所述操作实体的同步失败数据,根据所述同步失败数据对错误或冲突进行修正。6.根据权利要求5所述...

【专利技术属性】
技术研发人员:胡鹏崔伟毅傅腾徐啸陆震宇唐溢泓杨雯雯彭茜
申请(专利权)人:北京仁科互动网络技术有限公司
类型:发明
国别省市:北京,11

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

1