web-dev-qa-db-ja.com

MongoDB Go Driverを使用して、接続プールを設定するにはどうすればよいですか。

私は MongoDB GO Driver を使用しています。まだ手動で接続プーリングを設定しているかどうか、またはすでに箱から出しておくのであれば、必ず確かにありません。たとえば、コンテキスト(タイムアウト付き)が正確に何を意味するのかという意味ではありません。

私のコードは次のようになります。

package tools

import (
    "context"
    "time"
    "valuation-app/settings"

    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
)

// ConnectToDB starts a new database connection and returns a reference to it
func ConnectToDB() (*mongo.Database, error) {
    settings := settings.Get().Database
    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
    defer cancel()
    options := options.Client().ApplyURI(settings.URI)
    options.SetMaxPoolSize(10)
    client, err := mongo.Connect(ctx, options)
    if err != nil {
        return nil, err
    }

    return client.Database(settings.DatabaseName), nil
}
 _
9
Prutser

コメントから:

mongo-go-driver デフォルトで接続プーリングの世話をします(デフォルトで100接続)

ソースコードを読むことができます ここ

1
Amin Shojaei