couchbase同步网关为同步提供了哪些钩子?

时间:2017-01-06 09:50:03

标签: couchbase couchbase-lite couchbase-sync-gateway

是否可以通过以下方式使用couchbase syny网关:

1)移动客户端查询couchbase数据。

2)couchbase中没有数据存在,因此触发将所需数据从例如mysql数据库导入couchbase。

3)导入的数据然后通过couchbase同步网关传输到移动客户端。

4)移动客户端进入休眠状态。

5)在12小时不活动后,数据将从沙发基地移除。

6)第二天,移动客户端仍然保持数据离线并再次同步哪个同步网关

7)数据再次导入couchbase服务器,差异与客户端同步

couchbase是否提供钩子来实现这样一个灵活的用例? 如果是,有人可以指点我重要的api电话吗?

许多问候

1 个答案:

答案 0 :(得分:0)

执行此操作的首选方法是通过Sync Gateway运行大部分内容(特别是从外部源导入的数据应该通过Sync Gateway,而不是直接通过Couchbase,并且还应该通过SG删除数据。)

当SG接收文档时,同步网关的同步功能运行。从这个意义上说,没有办法在没有任何东西的情况下触发某些东西。

您可以解决此问题的一种方法是让移动客户端推送专用文档。您的同步功能可以捕获这个并以多种方式做出反应(触发webhook请求,启动复制,或者您可以设置一些内容来监视更改源并从中触发)。

接下来,您遇到了删除服务器端数据的问题。这里的问题有点不清楚。通常,应用程序会将新的修订版写入SG,并将这些修订版同步到客户端(反之亦然)。如果您删除服务器端的所有内容,您实际上最终会得到所谓的逻辑删除修订版,显示该文档已删除。 (这是Couchbase Mobile使用的灵活冲突解决技术的结果。它使用多版本并发控制。)

这个问题有点不清楚。听起来你不想长期在服务器端存储数据。如果这是对的,我认为你可以这样做:

  1. 删除数据(通过SG)
  2. 让移动客户端将数据推送到SG
  3. 再次使用一些特殊文件
  4. 触发SG
  5. 更新外部来源的数据
  6. 让客户从SG
  7. 获取更新

    这是一个非常粗略的轮廓。这太复杂了,无法以这种格式实现。我建议您通过Couchbase开发人员论坛发布问题以获取更多详细信息。

    所以,简短的回答,是的,这似乎是可行的,但是完整的答案需要更详细地说明你正在做什么以及你的约束是什么。