在Python中MongoDB连接是否可能超时?

在Python中MongoDB连接是否可能超时?,python,mongodb,heroku,Python,Mongodb,Heroku,(新手问题,很抱歉-我只是从MongoDB开始) 我正在连接heroku上的mongo,如下所示: self.connection = pymongo.Connection(MONGO_URL) self.db = self.connection.app13805318 有没有可能我在几个小时后尝试使用self.db,但无法读取它?我需要对连接进行某种保留或刷新吗?引用Pymongo文档: 客户端对象是线程安全的,并且内置了连接池。如果操作因网络错误而失败,则会引发ConnectionFail

(新手问题,很抱歉-我只是从MongoDB开始)

我正在连接heroku上的mongo,如下所示:

self.connection = pymongo.Connection(MONGO_URL)
self.db = self.connection.app13805318

有没有可能我在几个小时后尝试使用self.db,但无法读取它?我需要对连接进行某种保留或刷新吗?

引用Pymongo文档:

客户端对象是线程安全的,并且内置了连接池。如果操作因网络错误而失败,则会引发ConnectionFailure,客户端将在后台重新连接。应用程序代码应处理此异常(识别操作失败),然后继续执行

因此,正如@james wahlin在评论中所建议的,您不应该仅仅依赖pymongo的连接池机制,而应该始终将
self.db
的用法包装在
try..except
子句中


希望这能有所帮助。

我相信这里的最佳做法是捕获任何连接故障,并在出现故障时重试。请参阅下面的pymongo异常,我想AutoReconnect和ConnectionFailure对于客户端到mongo的连接错误来说很重要。当遇到mongo到mongo套接字异常时,也会引发OperationFailure。谢谢@JamesWahlin!我会照你的建议去做