我正在使用MongoDB和Morphia,我的目標是進行聊天。MongoDB鎖定,直到找到結果
我的想法是請求所有具有比指定數字更大的序號的消息。
例如如果請求消息0,將收到的所有消息,但如果請求消息100,如果沒有消息中找到,請求者你將只接收具有順序號大於100
更大的消息應該被鎖定,直到出現消息,換句話說,請求者等待未來的消息。
我的問題是,這是如何與MongoDB和Morphia實現?我不想查詢是否有周期性的新消息...
MongoDB是否支持鎖定,直到出現結果?
謝謝;-)
我正在使用MongoDB和Morphia,我的目標是進行聊天。MongoDB鎖定,直到找到結果
我的想法是請求所有具有比指定數字更大的序號的消息。
例如如果請求消息0,將收到的所有消息,但如果請求消息100,如果沒有消息中找到,請求者你將只接收具有順序號大於100
更大的消息應該被鎖定,直到出現消息,換句話說,請求者等待未來的消息。
我的問題是,這是如何與MongoDB和Morphia實現?我不想查詢是否有周期性的新消息...
MongoDB是否支持鎖定,直到出現結果?
謝謝;-)
可以使用tailable光標說。這個例子有點老了,但應該讓你大部分的方式。 https://github.com/deftlabs/mongodb-examples/tree/master/mongo-java-tailable-cursor-example
您確定Java/Morphia是否是此問題的最佳解決方案?
聊天和任何其他實時應用程序,可能更好地服務於Meteor.js和類似的框架。具體來說,Meteor的oplog拖尾會更加清晰 - 將更新推送給客戶端,而不是讓他們進行拉/輪詢。或者在可以追蹤的遊標的情況下,您不僅限於收藏集。
謝謝;-),是封頂收集是相當有限的。
順便說一句如果有人找不到tailable迭代器,也許你正在導入com.google.code.morphia(我有這個錯誤)。
請回答通過評論回答。 – 2014-09-07 10:26:36