couchbase sync gateway 为同步提供了哪些钩子?

What hooks does couchbase sync gateway provide for sync?

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

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

2) couchbase 中没有数据,因此这会触发将所需数据从 mysql 数据库导入 couchbase。

3) 导入的数据通过couchbase synch gateway传输到手机客户端

4) 手机客户端休眠

5) 闲置 12 小时后,数据将从 couchbase 中删除。

6) 第二天手机客户端仍然离线保存数据,再次同步哪个同步网关

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

couchbase 是否提供挂钩来实现这种灵活的用例? 如果是,有人可以告诉我重要的 api 电话吗?

许多问候

执行此操作的首选方法是 运行 大多数事情都通过 Sync Gateway(特别是从外部源导入的数据应该通过 Sync Gateway,而不是直接到 Couchbase,删除数据应该通过SG也。)

Sync Gateway 的同步功能在 SG 接收文件时 运行s。从这个意义上说,没有办法根据什么都不存在来触发某些东西。

解决此问题的一种方法是让移动客户端推送一个特殊用途的文档。您的同步功能可以捕捉到这一点并以多种方式做出反应(触发 webhook 请求、开始复制,或者您可以设置一些东西来监视更改提要并从中触发)。

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

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

  1. 删除数据(通过SG)
  2. 让手机客户端向SG推送数据
  3. 用一些特殊的文件再次触发SG
  4. 从外部源更新数据
  5. 让客户端从 SG 拉取更新

这是一个非常粗略的轮廓。这太复杂了,无法以这种格式真正解决。我建议您通过 Couchbase 开发者论坛 post 提问以获取更多详细信息。

所以,简短的回答是,是的,这似乎是可行的,但完整的回答需要更多关于您在做什么以及您的限制是什么的细节。