MongoDB Tailable Cursors 特性介绍
MongoDB Tailable Cursors 特性介绍MongoDB 有一个叫 Tailable Cursors的特性,它类似于tail -f 命令,你在一个Capped Collection上面执行查询操作,当操作完成后,你可以不关闭返回的数据Cursor,并持续地从中读出新加入的数据。
这个特性可以用来干什么?我觉得最直接的一个用途就是用作消息队列了,利用此特性加上MongoDB 天然的Replication 机制,做一个分布式的队列系统貌似不是什么难事。
下面是PHP 的示例代码:selectDB('my_db')
$coll = $db->selectCollection('my_collection');
$cursor = $coll->find()->tailable(true);
while (true) {
if ($cursor->hasNext()) {
$doc = $cursor->getNext();
print_r($doc);
} else {
sleep(1);
}
}下面是Ruby 的示例代码:db = Mongo::Connection.new().db('my_db')
coll = db.collection('my_collection')
cursor = Mongo::Cursor.new(coll, :tailable => true)
loop do
if doc = cursor.next_document
puts doc
else
sleep 1
end
end原文链接:http://jwage.com/2011/03/16/mongodb-tailable-cursors/
官方介绍:http://www.mongodb.org/display/DOCS/Tailable+Cursors
谢谢分享
页:
[1]