一种数据更新方法及装置制造方法及图纸

技术编号:38903507 阅读:14 留言:0更新日期:2023-09-22 14:21
本发明专利技术实施例提供了一种数据更新方法及装置,涉及软件开发技术领域。该方法包括:定义目标数据类,目标数据类包括多个属性;构建数据观察模型,并将目标数据类添加到的数据观察模型的可观察数据源中,数据观察模型包括发布者和至少一个订阅者;在需要对可观察数据源进行更新时,获取更新数据,更新数据为更新后目标数据类的数据;根据原始数据和更新数据,确定目标属性集合,原始数据为更新前目标数据类的数据,目标属性集合为目标数据类的属性中更新前后对应的数据发生了变化的属性组成的集合;根据更新数据和目标属性集合对可观察数据源进行更新时。本发明专利技术实施例用于解决相关技术中无法对可观察数据源中的数据进行差量更新的问题。的问题。的问题。

【技术实现步骤摘要】
一种数据更新方法及装置


[0001]本专利技术涉及软件开发
,尤其涉及一种数据更新方法及装置。

技术介绍

[0002]观察者模式(Observer)又称为发布/订阅模式,是一种软件设计模式。在观察者模式中一个目标对象管理所有相依于它的观察者对象,并且在目标对象本身的状态改变时主动向全部观察者对象发出通知。
[0003]现有技术中,观察者模式下可观察数据源进行数据更新时的最小数据粒度为数据类,因此每次更新可观察数据源时都需要数据发生变化的数据类进行整体更新。例如:可观察数据源的某一数据类包括数据类型A和数据类型B两个类型的数据,当其中一个类型的数据发生了变化时,发布者需要进行数据更新,且更新方式为对该数据类进行整体更新。如上所述,在现有技术中,一旦可观察数据源中的数据发生了变化,无论是数据类中的全部数据均发生了变化,还是数据类中的部分数据发生了变化,发布者都需要对数据类进行整体更新,而当数据类中的部分数据发生了变化时对数据类进行整体更新会存在部分无效更新,进而造成相关更新资源的浪费。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种数据更新方法及装置,用于解决相关技术中无法对可观察数据源中的数据进行差量更新的问题。
[0005]为了实现上述目的,本专利技术实施例提供技术方案如下:
[0006]第一方面,本专利技术的实施例提供了一种数据更新方法,包括:
[0007]定义目标数据类,所述目标数据类包括多个属性;
[0008]构建数据观察模型,并将所述目标数据类添加到的所述数据观察模型的可观察数据源中,所述数据观察模型包括发布者和至少一个订阅者;
[0009]在需要对所述可观察数据源进行更新时,获取更新数据,所述更新数据为更新后所述目标数据类的数据;
[0010]根据原始数据和所述更新数据,确定目标属性集合,所述原始数据为更新前所述目标数据类的数据,所述目标属性集合为所述目标数据类的属性中更新前后对应的数据发生了变化的属性组成的集合;
[0011]根据所述更新数据和所述目标属性集合对所述可观察数据源进行更新时。
[0012]作为本专利技术实施例一种可选的实施方式,在根据所述更新数据和所述目标属性集合对所述可观察数据源进行更新之后,所述方法还包括:
[0013]根据所述目标属性集合确定第一订阅者集合,所述第一订阅者集合为所述数据观察模型的订阅者中订阅了所述目标属性集合中任一属性的订阅者组成的集合;
[0014]确定所述第一订阅者集合中各个订阅者对应的差量数据,任一订阅者对应的差量数据为所述更新数据中该订阅者订阅的属性中属于所述目标属性集合的属性对应的数据;
[0015]向所述第一订阅者集合中的各个订阅者发送通知消息和对应的差量数据。
[0016]作为本专利技术实施例一种可选的实施方式,在根据所述更新数据和所述目标属性集合对所述可观察数据源进行更新之后,所述方法还包括:
[0017]根据所述目标属性集合确定第一订阅者集合,所述第一订阅者集合为所述数据观察模型的订阅者中订阅了所述目标属性集合中任一属性的订阅者组成的集合;
[0018]根据所述第一订阅者集合中各个订阅者的生命周期的状态,确定第二订阅者集合,所述第二订阅者集合为所述第一订阅者集合中生命周期处于活跃状态的订阅者组成的集合;
[0019]确定所述第二订阅者集合中各个订阅者对应的差量数据,任一订阅者对应的差量数据为所述更新数据中该订阅者订阅的属性中属于所述目标属性集合的属性对应的数据;
[0020]向所述第二订阅者集合中的各个订阅者发送通知消息和对应的差量数据。
[0021]作为本专利技术实施例一种可选的实施方式,所述构建数据观察模型,包括:
[0022]声明所述数据发布者和所述至少一个数据订阅者;
[0023]配置所述至少一个数据订阅者中的每一个数据订阅者订阅的属性。
[0024]作为本专利技术实施例一种可选的实施方式,所述获取更新数据,包括:
[0025]创建数据更新函数;所述数据更新函数的输入为所述原始数据,所述数据更新函数的输出为所述更新数据;
[0026]根据所述数据更新函数获取所述更新数据。
[0027]作为本专利技术实施例一种可选的实施方式,所述根据所述数据更新函数获取所述更新数据,包括:
[0028]确定所述数据观察模型的缓冲队列是否为空;
[0029]若否,则对所述数据更新函数和所述缓冲队列中的数据更新函数进行合并计算,获取汇总数据更新函数;
[0030]清空所述缓冲队列,并将所述汇总数据更新函数放入所述缓冲队列;
[0031]调用所述缓冲队列中的所述汇总数据更新函数以获取所述更新数据。
[0032]作为本专利技术实施例一种可选的实施方式,所述方法还包括:
[0033]若所述缓冲队列为空,则将所述数据更新函数放入所述缓冲队列;
[0034]调用所述缓冲队列中的所述数据更新函数以获取所述更新数据。
[0035]作为本专利技术实施例一种可选的实施方式,所述根据所述原始数据和所述更新数据,确定目标属性集合,包括:
[0036]对所述更新数据进行属性映射,获取更新后所述目标数据类的各个属性对应的数据;
[0037]通过确定更新后所述目标数据类的各个属性对应的数据与更新前所述目标数据类的各个属性对应的数据是否相同,获取至少一个目标属性,所述目标属性为所述目标数据类的属性中更新前后对应的数据不同的属性;
[0038]将所述至少一个目标属性组合为所述目标属性集合。
[0039]第二方面,本专利技术的实施例提供了一种信息流服务器,包括:
[0040]定义单元,用于定义目标数据类,所述目标数据类包括多个属性;
[0041]构建单元,用于构建数据观察模型,并将所述目标数据类添加到的所述数据观察
模型的可观察数据源中,所述数据观察模型包括发布者和至少一个订阅者;
[0042]获取单元,用于在需要对所述可观察数据源进行更新时,获取更新数据,所述更新数据为更新后所述目标数据类的数据;
[0043]处理单元,用于根据原始数据和所述更新数据,确定目标属性集合,所述原始数据为更新前所述目标数据类的数据,所述目标属性集合为所述目标数据类的属性中更新前后对应的数据发生了变化的属性组成的集合;
[0044]更新单元,用于根据所述更新数据和所述目标属性集合对所述可观察数据源进行更新。
[0045]作为本专利技术实施例一种可选的实施方式,所述装置还包括:
[0046]发送单元,用于在根据所述更新数据和所述目标属性集合对所述可观察数据源进行更新之后,根据所述目标属性集合确定第一订阅者集合,所述第一订阅者集合为所述数据观察模型的订阅者中订阅了所述目标属性集合中任一属性的订阅者组成的集合;确定所述第一订阅者集合中各个订阅者对应的差量数据,任一订阅者对应的差量数据为所述更新数据中该订阅者订阅的属性中属于所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据更新方法,其特征在于,包括:定义目标数据类,所述目标数据类包括多个属性;构建数据观察模型,并将所述目标数据类添加到的所述数据观察模型的可观察数据源中,所述数据观察模型包括发布者和至少一个订阅者;在需要对所述可观察数据源进行更新时,获取更新数据,所述更新数据为更新后所述目标数据类的数据;根据原始数据和所述更新数据,确定目标属性集合,所述原始数据为更新前所述目标数据类的数据,所述目标属性集合为所述目标数据类的属性中更新前后对应的数据发生了变化的属性组成的集合;根据所述更新数据和所述目标属性集合对所述可观察数据源进行更新。2.根据权利要求1所述的方法,其特征在于,在根据所述更新数据和所述目标属性集合对所述可观察数据源进行更新之后,所述方法还包括:根据所述目标属性集合确定第一订阅者集合,所述第一订阅者集合为所述数据观察模型的订阅者中订阅了所述目标属性集合中任一属性的订阅者组成的集合;确定所述第一订阅者集合中各个订阅者对应的差量数据,任一订阅者对应的差量数据为所述更新数据中该订阅者订阅的属性中属于所述目标属性集合的属性对应的数据;向所述第一订阅者集合中的各个订阅者发送通知消息和对应的差量数据。3.根据权利要求1所述的方法,其特征在于,在根据所述更新数据和所述目标属性集合对所述可观察数据源进行更新之后,所述方法还包括:根据所述目标属性集合确定第一订阅者集合,所述第一订阅者集合为所述数据观察模型的订阅者中订阅了所述目标属性集合中任一属性的订阅者组成的集合;根据所述第一订阅者集合中各个订阅者的生命周期的状态,确定第二订阅者集合,所述第二订阅者集合为所述第一订阅者集合中生命周期处于活跃状态的订阅者组成的集合;确定所述第二订阅者集合中各个订阅者对应的差量数据,任一订阅者对应的差量数据为所述更新数据中该订阅者订阅的属性中属于所述目标属性集合的属性对应的数据;向所述第二订阅者集合中的各个订阅者发送通知消息和对应的差量数据。4.根据权利要求1所述的方法,其特征在于,所述构建数据观察模型,包括:声明所述数据发布者和所述至少一个数据订阅者;配置所述至少一个数据订阅者中的每一个数据订阅者订阅的属性。5.根据权利要求1所述的方法,其特征在于,所述获取更新数据,包括:创建数据更新函数;所述数据更新函数的输入为所述原始数据,所述数据更新函数的输出为所述更新数据;根据所述数据更新函数获取所述更新数据。6.根据权利要求5所述的方法,其特征在于,所述根据所述数据更新...

【专利技术属性】
技术研发人员:谢信奇
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

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

1