相关疑难解决方法(0)

为什么PyMongo会抛出AutoReconnect?

在研究我的Python Web应用程序的一些奇怪问题时(特别是有关MongoDB连接的问题),我在官方PyMongo文档页面上注意到了一些问题.我的Web应用程序使用Flask,但这不应该影响我面临的问题.

PyMongo驱动程序执行连接池,但是AutoReconnect当连接失效并且重新连接到期时,它也会抛出异常().

它声明(关于AutoReconnect异常):

为了自动重新连接,您必须处理此异常,并认识到导致它的操作未必成功.将来的操作将尝试打开与数据库的新连接(并将继续引发此异常,直到第一次成功建立连接).

我注意到这实际上经常发生(并且它似乎不是一个错误).MongoDB服务器在几分钟不活动之后关闭连接,并且需要由Web应用程序重新创建.

我不明白为什么PyMongo驱动程序重新连接时会抛出错误(驱动程序的用户需要自己处理),而不是透明地执行.(甚至有可能是一个选项,用户可以设置使AutoReconnect异常抛出,但将不是一个合理的默认是这些异常没有得到根本抛出,以及连接无缝重现?)

我从来没有遇到过使用其他数据库系统的这种行为,这就是为什么我有点困惑.

还值得一提的是,当连接到我的本地开发MongoDB服务器时,我的Web应用程序的MongoDB连接永远不会失败(我假设它与本地连接的事实有关,并且连接是通过UNIX套接字而不是通过UNIX套接字完成的一个网络套接字,但我可能是错的).

python mongodb pymongo

15
推荐指数
1
解决办法
8184
查看次数

标签 统计

mongodb ×1

pymongo ×1

python ×1