首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法减少pymongo.errors.AutoReconnect发生所需的时间?

有没有办法减少pymongo.errors.AutoReconnect发生所需的时间?
EN

Stack Overflow用户
提问于 2018-02-08 16:51:15
回答 1查看 65关注 0票数 1

我使用一个3节点的MongoDB副本集,并使用Pymongov3.3.1连接到它。

在测试AutoReconnect和ServerSelectionTimeout等错误的处理过程中,我发现我无法(安全/可靠地)控制引发AutoReconnect异常所需的时间。

如果我实例化MongoClient,并将参数serverSelectionTimeoutMS设置为2000,则serverSelectionTimeoutMS do将在大约2秒内看到ServerSelectionTimeout异常返回。然而,当条件正好触发一个AutoReconnect时,总是需要至少20秒,有时接近30秒!

我怎样才能约束这种行为?我拍摄相对高可用性,并希望检测网络/复制集异常,并开始我的重试逻辑相当快。

EN

回答 1

Stack Overflow用户

发布于 2018-02-08 16:51:15

经过一些修补之后,事实证明,使用MongoClient参数socketTimeoutMS,如果设置为比AutoReconnect所观察到的更快的东西,将取代AutoReconnect。

与我最初关注的相反,这不会干扰长期运行的查询,因为套接字连接得很好。

我发现,在由于此设置引发第一个NetworkTimeout异常后,可能需要10秒左右才能再次尝试。这可以通过将connectTimeoutMS参数传递给MongoClient (很可能与socketTimeoutMS的值相同)来解决。

如果有人发现对此解决方案的任何警告,请在此发布回复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48690736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档