在pymongo保持游标活着

时间:2014-05-01 22:59:01

标签: mongodb pymongo

默认情况下,Mongo游标在10分钟不活动后死亡。我有一个空白的光标,我最终想要在整个数据库中运行但是有超过10分钟的时间不活动。我需要一种方法来保持这种活力,我可以继续呼唤它。

完全关闭设置到期时间不是一种选择。如果此程序崩溃,将导致游标停留在数据库内存中,这是不好的。还偶尔在我的其他东西中调用.next()不起作用,因为批量大小设置得相当高,以便在调用光标的代码的其他部分上获得良好的性能。

我试着定期调用cursor.alive来查看是否向Mongo发送了一个信号,该信号会保持光标处于活动状态但是没有效果。

1 个答案:

答案 0 :(得分:2)

尝试使用较小的批量大小。这将导致活动,你不应该达到10分钟的超时。

for doc in coll.find().batch_size(10):

或者,您可以在调用timeout=False时设置find(这可能会导致光标未手动关闭时出现问题):

for doc in coll.find(timeout=False)