MongoDB锁定直到找到结果

时间:2014-09-04 22:05:06

标签: java mongodb chat morphia

我正在使用MongoDB和Morphia,我的目标是聊天。

我的想法是请求所有序列号大于指定号码的邮件。

例如,如果您请求消息0,您将收到所有消息,但如果您请求消息100,您将只接收序号大于100的消息。

如果没有找到消息,则应该锁定请求者,直到出现消息,换句话说,请求者等待将来的消息。

我的问题是,如何用MongoDB和Morphia实现?我不想定期查询是否有更新的消息...

MongoDB是否支持锁定,直到有结果?

谢谢; - )

3 个答案:

答案 0 :(得分:1)

您可以使用tailable游标。这个例子有点旧,但应该让你大部分时间。 https://github.com/deftlabs/mongodb-examples/tree/master/mongo-java-tailable-cursor-example

答案 1 :(得分:1)

您确定Java / Morphia是解决此问题的最佳解决方案吗?

聊天和任何其他实时应用程序,可能更好地由Meteor.js和类似的框架提供服务。具体来说,Meteor的oplog尾随对于聊天更加聪明 - 将更新推送到客户端而不是让他们进行拉/轮询。或者对于tailable游标,您不限于上限集合。

答案 2 :(得分:0)

谢谢;-),是的封顶收藏是非常有限的。

如果有人找不到tailable iterator,也许你正在导入com.google.code.morphia(我有错误)。