CouchDB stale=update_after 完成通知

CouchDB stale=update_after completion notification

有没有办法通过推送或拉取的方式接收关于视图何时更新的通知?理想情况下,我希望能够 return 向用户提供现有数据,然后在他们的新内容可用时通知他们。

看起来没有明确的方法可以完成您的要求,但我为您提供了一些想法:

1) 轮询_active_tasks

您可以尝试检查服务器的活动任务列表,查找匹配的条目:type === indexerdesign_document === _design/your-design-doc。如果您的视图需要几分钟或更长时间才能完成更新,那么值得一试。 (当然我从来没有真正尝试过这个,但理论上它应该有效)这需要你不断地轮询服务器。

2) 通过 HEAD

轮询视图本身

发出第一个请求后,您可以开始使用 HEAD 请求进行轮询,等待 ETag header 更改。 (这表明视图索引已更改)HEAD 请求已尽可能少,因此这可能是比 #1)

更好的选择

3) 发出 2 个 GET 请求(而不是使用 stale=update_after

您总是可以发出 2 个请求,第一个是 stale=ok 为了提高速度。然后您只需在不允许过时的结果之后立即发出请求,这将需要更长的时间。它远不如 "flashy",但这可能是最好的。