Overview
このガイドでは、 PyMongo が接続プールを使用してMongoDBデプロイへの接続を管理する方法と、アプリケーションで接続プール設定を構成する方法について学習できます。
接続プール とはオープンデータベース接続のキャッシュであり、 PyMongoによって維持されます。 アプリケーションがMongoDBへの接続を要求すると、 PyMongo はプールからシームレスに接続を取得し、操作を実行し、再利用するためにプールに接続を返します。
接続プールは、アプリケーションのレイテンシと新しい接続がPyMongoによって作成される回数を削減するのに役立ちます。
接続プールの構成
次の接続プール設定は、MongoClientオブジェクトまたは接続 URI で指定できます。
設定 | 説明 |
|---|---|
| PyMongo がタイムアウトする前に新しい接続を確立する際に待機する時間。 |
| 各プールが同時に確立できる最大接続数。この制限に達した場合、接続が確立されるか、使用中の別の接続がプールに返されるまで、それ以降のリクエストは待機します。 |
| プール内で接続がアイドル状態になる最大時間。接続がこの制限を超えると、PyMongo は接続を閉じてプールから削除します。この値は、アプリケーションの予想されるアイドル期間よりも高く、ファイアウォールまたはプロキシの接続タイムアウトよりも低く設定して、予期せぬ切断を防ぎます。 |
| プールが維持する同時接続の最大数。プールの最大サイズに達した場合、接続が利用可能になるまで、それ以降のリクエストは待機します。 |
| プールが維持する同時接続の最小数。ネットワーク エラーにより開いている接続の数がこの値を下回った場合、PyMongo は新しい接続を作成してこの最小値を維持しようとします。 |
| PyMongo がタイムアウトする前にサーバーから応答を待つ時間の長さ。 |
| スレッドが接続プールで接続が利用可能になるまで待機し、タイムアウトするまでの時間。 |
次のコードでは、maxPoolSize パラメータを使用して最大接続プールサイズが 50 のクライアントを作成します。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。
client = MongoClient(host, port, maxPoolSize=50)
client = AsyncMongoClient(host, port, maxPoolSize=50)
次のコードでは、前の例と同じ構成のクライアントを作成しますが、接続 URI を使用します。
client = MongoClient(host, port, maxPoolSize=50)
client = AsyncMongoClient(host, port, maxPoolSize=50)
詳細情報
接続プールの詳細については、 MongoDB Serverマニュアルの「 接続プールの概要 」を参照してください。
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。