延迟同步增量从Android中的内容变化



我是符合满足的新手,我编写了一个使用内容交付API从我的空间中获取内容的Android应用程序。

我已经使用了Vault和普通API(无库)获取内容。

我观察到,获取增量更改(新和更新内容)总是有3-5秒的延迟。

我的要求是给出实时数据同步。

这是我实施的问题,还是它的预期行为。

示例代码:1.使用Vault

Vault.with(App.getInstance(), SampleSpace.class).requestSync(
            SyncConfig.builder()
                    .setClient(ClientProvider.get())
                    .setInvalidate(false)
                    .build());
List<SampleTable> appointments = Vault.with(App.getInstance(), SampleSpace.class)
            .fetch(SampleTable.class)
            .where(SampleTable$Fields.DATE+"=?", mDateToCheck)
            .all();
  1. 普通API

    private final CDAClient client =   CDAClient.builder().setToken(CDA_TOKEN).setSpace(SPACE_ID).build();
    client.observe(CDAEntry.class).all()
    .observeOn(AndroidSchedulers.mainThread())
    .subscribeOn(Schedulers.io())
    .subscribe(new Action1<CDAArray>() {
    @Override
    public void call(CDAArray entries) {
         //business logic here
      }});
    

感谢您的时间和帮助!

我是Java和Android SDK的维护者。

可能有一些放缓的原因:

1)您是syncing很多数据

这意味着,许多数据,甚至可能不同的页面都必须从内容符号,解析,序列化并将其放入数据库中。

在这种情况下,请看一下通过ID获取条目而不使用同步的条目可能是一个想法。可悲的是,您会失去保险库模型类的良好性,并需要自己实现从内容模型到自定义模型的映射。

2)classLoader.getResources

在代码段中,您正在使用每个同步调用重新创建CDAClientVault。这在Android上有一个已知问题,我们目前正在努力修复它。

目前,直到更新进行之前,建议是尝试查看在字段中存储Vault和/或CDAClient是否对后续呼叫有帮助。

3)网络慢

可悲的是,这意味着,我们从一边做出什么……;)

我希望这能给您一些解决方案,请随时向您遇到的任何进度报告。

我在此问题上找到的唯一解决方案是使用ContentForief API。因此,当某些对象被修改/删除/创建时,响应速度将相同。话虽如此,用户可以在应用程序/Web中的一秒钟或更少的时间内获取所有更新。

问题是该应用程序将显示是否已发布的条目(草稿),因此取决于项目请求。

如果用户需要使用此解决方案,则他必须使用 content Preview API-访问令牌,该在APIS顶部面板部分中的内容。我希望它有帮助!

最新更新