6

(新手问题,对此感到抱歉-我刚开始使用 MongoDB)

我像这样在heroku上连接到mongo:

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

是否有可能我在几个小时后尝试使用 self.db 却无法阅读?我是否需要对连接进行某种保活或刷新?

4

1 回答 1

6

引用 Pymongo 文档:https ://pymongo.readthedocs.io/en/stable/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient

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

因此,正如@james-wahlin 在评论中所建议的那样,您不应仅仅依赖 pymongo 的连接池机制,而应始终包装您对self.dbintry..except子句的使用。

希望这可以帮助。

于 2013-07-17T15:16:06.607 回答