4
(新手問題,有關 - 我只是MongoDB的開始不好意思)MongoDB連接可能在Python中超時嗎?
我連接到在Heroku蒙戈是這樣的:
self.connection = pymongo.Connection(MONGO_URL)
self.db = self.connection.app13805318
難道我嘗試使用self.db幾個小時後又無法讀取?我需要做一些保持連接或刷新連接嗎?
(新手問題,有關 - 我只是MongoDB的開始不好意思)MongoDB連接可能在Python中超時嗎?
我連接到在Heroku蒙戈是這樣的:
self.connection = pymongo.Connection(MONGO_URL)
self.db = self.connection.app13805318
難道我嘗試使用self.db幾個小時後又無法讀取?我需要做一些保持連接或刷新連接嗎?
從Pymongo文檔引用:http://api.mongodb.org/python/current/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient
所得客戶對象具有內置的連接池它還執行自動重新連接時必需的。如果某個操作由於連接錯誤而失敗,則會引發ConnectionFailure。如果將執行自動重新連接,則會自動重新連接。應用程序代碼應處理此異常(識別操作失敗),然後繼續執行。
因此,作爲@詹姆斯 - wahlin的意見建議,您不應該僅僅依靠pymongo的連接池機制卻始終換你的self.db
使用在try..except
條款。
希望這會有所幫助。
我相信這裏最好的做法是捕捉任何連接故障,並重試失敗。有關pymongo異常,請參閱以下內容,我猜測AutoReconnect和ConnectionFailure對於客戶端連接mongo錯誤非常重要。當遇到mongo到mongo套接字異常時,也可能拋出OperationFailure。 http://api.mongodb.org/python/current/api/pymongo/errors.html –
謝謝@JamesWahlin!我會按你的建議去做 –