默认情况下,孟戈游标在10分钟的不活动之后就会死掉。我有一个空白光标,我最终想在整个数据库中运行,但是会有超过10分钟的不活动时间。我需要一个办法让这件事活下去--我可以一直叫它。
设置完全关闭的过期时间不是一个选项。如果这个程序崩溃,它将导致游标在数据库内存中徘徊,这是不好的。此外,在我的其他内容中偶尔调用.next()不能工作,因为批处理大小被设置得相当高,以便在经常调用游标的代码的其他部分上获得良好的性能。
我只是定期打电话给cursor.alive,看看它是否向Mongo发送了一个信号,使光标保持活动状态,但这不起作用。
发布于 2014-05-01 15:06:41
尝试使用较小的批处理大小。这将导致活动,您不应该按10分钟的超时时间。
for doc in coll.find().batch_size(10):
或者,您可以在调用timeout=False
时设置find
(这可能导致光标未手动关闭时出现问题):
for doc in coll.find(timeout=False)
https://stackoverflow.com/questions/23418107
复制