2

我正在构建一个从 mongodb 集合中抛出数据的小型系统,它已经可以正常工作,但是每次进行更改时都必须重新启动它。我已经有一个监视器可以检测更改并自动重新启动服务器,但我想对 mongodb 更改执行类似的操作。我目前正在使用 CentOs 5、Nginx、uWsgi 和 python2.7。

4

1 回答 1

4

我会考虑使用tailable cursors,它们在到达集合末尾后仍然保持活动状态,并且可以阻塞直到有新对象可用。

使用PyMongo,您可以调用Collection.find一个tailable=True选项来启用此行为。这篇文给出了一些很好的例子来说明它的用法。

此外,您可能希望查询数据库的oplog ,而不是只查询集合,它只会提醒您添加到该集合中的新对象,它是对数据库中任何集合调用的所有插入、更新和删除的集合. 请注意,必须为 mongo 启用复制才能保留 oplog。查看这篇文,了解有关 oplog 和启用复制的信息。

于 2012-12-10T21:07:47.937 回答