三里屯摇滚 发表于 2012-02-21 19:57

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

清风鸟儿 发表于 2012-02-24 17:52

谢谢分享
页: [1]
查看完整版本: MongoDB Tailable Cursors 特性介绍