【问题标题】:CouchDB longpoll without _changes没有 _changes 的 CouchDB longpoll
【发布时间】:2018-12-04 14:09:17
【问题描述】:

我想在 couchDB 中使用 longpoll 选项,但没有 _changes 视图。 数据库有这个视图:

function (doc) {
  if(doc.job)
    emit(doc._id, 1);
}

所以它会发出所有包含“job”标签的文档。请注意,我在这个数据库中有很多其他的东西。现在我想使用一个长轮询,只要数据库中没有带有作业标签的文档,连接就会保持打开状态。只要有一个带有作业标签的文档,数据库就会将其发送给客户端,并且应该关闭连接。客户端现在可以完成工作,向数据库发送删除命令以删除工作,然后重新开始监听。 所以我的想法是像这样调用视图:

http://mycouch/mydb/_design/visualize/_view/get_jobs?feed=longpoll&include_docs=true

但是,似乎只能在 _changes 视图中使用 longpoll。任何解决方法?

感谢您的帮助

【问题讨论】:

    标签: couchdb long-polling


    【解决方案1】:

    _changes 是您需要在您的案例中使用的提要。 Yo 可以使用它通过仅接收“工作”标记文档的更改来过滤提要。您可以使用视图地图功能来做到这一点。

    http://mycouch/_changes?filter=_view&view=visualize/get_jobs&feed=logpoll&include_docs=true

    您将通过此提要收到对数据库中带有“工作”标签的文档的任何更新(创建/更新/删除)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      相关资源
      最近更新 更多