如何将异步插入mongodb中的日志?

时间:2013-02-18 01:51:24

标签: python mongodb asynchronous pymongo

我想使用PyMongo作为Django应用程序的记录器。

我不介意日志表中的某些插入是否丢失,所以我想将日志发送到另一台服务器的mongodb,并继续执行而不等待确认。

我正在阅读pymongo文档,但是我不清楚集合中的插入是否阻塞。

我正在考虑在django模型方法中执行此操作

from pymongo import MongoClient
conn = MongoClient('mongoserver', 27017)
db   = conn.main
col  = db.log
col.insert({"user": "Pedro", "action": "search", "Origin": "Katmandu"}, w=0)
conn.close()

我不知道插件是否像那样异步,是否应关闭连接

1 个答案:

答案 0 :(得分:5)

因为您将w=0参数传递给insert,所以该操作是非阻塞的,并且该调用将简单地对文档进行排队以便插入和返回。

保持连接打开以获得最佳性能。