我应该在每次插入时重新初始化连接吗?
class TwitterStream:
def __init__(self, timeout=False):
while True:
dump_data()
def dump_data:
##dump my data into mongodb
##should I be doing this every time??:
client=MongoClient()
mongo=MongoClient('localhost',27017)
db=mongo.test
db.insert('some stuff':'other stuff')
##dump data and close connection
#########################
每次写入记录时都需要打开连接吗?或者,假设我每秒向数据库写入 5 次,每次大约 10kb,我可以保持连接打开吗?
如果只有一个连接就足够了,我应该在哪里定义保存连接的变量(client
、mongo
、db
)?
最佳答案
打开一个在程序运行期间有效的 MongoClient:
client = MongoClient()
class TwitterStream:
def dump_data:
while True:
db = client.test
db.insert({'some stuff': 'other stuff'})
打开单个 MongoClient 意味着您只需支付一次启动成本,并且其连接池将最大限度地降低打开新连接的成本。
如果您担心偶尔出现网络问题,请将您的操作包装在异常 block 中:
try:
db.insert(...)
except pymongo.errors.ConnectionFailure:
# Handle error.
...
关于python - 使用python将数据插入mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17625271/