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 ドキュメントを参照してください。