【问题标题】:Realm - write from different threads - RxJava领域 - 从不同的线程写入 - RxJava
【发布时间】:2017-11-16 19:04:20
【问题描述】:

我想使用 Realm,我需要从不同的线程写入数据。我阅读了有关 Realm 的帖子。领域类似于 Git。你能解释一下 Realm 中数据与冲突的合并是如何工作的吗?谢谢

【问题讨论】:

    标签: android multithreading realm


    【解决方案1】:

    您能解释一下 Realm 中数据与冲突的合并是如何工作的吗?

    如果我们谈论的是 Realm 本地数据库(Realm Mobile Database),而不是是关于 Realm 移动平台:

    • 事务跨线程和进程阻塞,因此一次只能有一个写入事务。因此,当它被提交时,它将成为新版本。合并方案是不可能的。当一个写事务打开时,那么在事务中,你随时可以看到数据库的最新状态,不可能看到旧版本。

    如果我们谈论的是 Realm 移动平台:

    • 当多个离线事务发生在同一数据上且稍后才会同步时,conflict resolution 会根据操作转换的规则发生:

      • 删除总是赢:如果一方删除一个对象,它将始终保持被删除状态,即使另一方稍后对其进行了更改。

      • 最后一次更新获胜。如果两侧更新相同的属性,则该值将作为最后更新的值结束。

      • 列表中的插入按时间排序。如果在同一位置插入两个项目,则首先插入的项目将在另一个项目之前结束。

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2016-06-28
      • 2016-05-07
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多