2013-07-17 31 views
4

(新手問題,有關 - 我只是MongoDB的開始不好意思)MongoDB連接可能在Python中超時嗎?

我連接到在Heroku蒙戈是這樣的:

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

難道我嘗試使用self.db幾個小時後又無法讀取?我需要做一些保持連接或刷新連接嗎?

+0

我相信這裏最好的做法是捕捉任何連接故障,並重試失敗。有關pymongo異常,請參閱以下內容,我猜測AutoReconnect和ConnectionFailure對於客戶端連接mongo錯誤非常重要。當遇到mongo到mongo套接字異常時,也可能拋出OperationFailure。 http://api.mongodb.org/python/current/api/pymongo/errors.html –

+0

謝謝@JamesWahlin!我會按你的建議去做 –

回答

4

從Pymongo文檔引用:http://api.mongodb.org/python/current/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient

所得客戶對象具有內置的連接池它還執行自動重新連接時必需的。如果某個操作由於連接錯誤而失敗,則會引發ConnectionFailure。如果將執行自動重新連接,則會自動重新連接。應用程序代碼應處理此異常(識別操作失敗),然後繼續執行。

因此,作爲@詹姆斯 - wahlin的意見建議,您不應該僅僅依靠pymongo的連接池機制卻始終換你的self.db使用在try..except條款。

希望這會有所幫助。