gpt4 book ai didi

mongodb - 检查游标是否超时

转载 作者:可可西里 更新时间:2023-11-01 09:40:44 25 4
gpt4 key购买 nike

是否可以检查数据库中打开的游标是否已超时? .alive 属性似乎在没有实际调用 next() 的情况下不会更新,但这也会导致光标位置前进,这是我不希望的。

背景:我将数据延迟加载到 Web 客户端,并在服务器端保持游标打开,以便客户端可以从中请求更多数据。我让 Mongo 的游标超时,因为这对于用例来说已经足够好了,并且简化了有保证的游标垃圾收集。但是,这让我不得不管理打开的游标引用 Python 端,这是我在偶尔的垃圾收集周期中所做的。在这个周期中,我想丢弃所有在 Mongo 端已经超时的游标。

最佳答案

根据changelog.rst对于 PyMongo 驱动程序,alive 方法在 MongoClient 上已弃用,因为它不再提供有意义的信息。即使Mongo Client掉线了,它也可以及时发现一个服务器来完成下一个操作。 alive 在游标级别仍然可用,但是,它只为可尾游标提供有意义的信息,因为它们可能会暂时停止迭代。对于普通游标,验证游标是否仍然存在的唯一可靠方法是调用 next()

如果调用 next() 时出现问题,您可以使用类似于下面的片段将光标倒回并重播到最后一条记录:

recordCount = 10
cursor.rewind()
counter = 0
for _ in cursor:
counter = counter + 1
if counter == recordCount:
break

关于mongodb - 检查游标是否超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34315835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com