DocumentDB/CosmosDBにアクセスするには、パッケージMicrosoft.Azure.DocumentDB.Core
(v1.3.2)を使用しています。DocumentDBクライアントのライフタイム
var documentClient = new DocumentClient(new Uri(endpointUrl), primaryKey);
await documentClient.OpenAsync();
インデックスやその他の情報についての情報を取得するために、エンドポイントに解雇要求の数があります:私は作成してDocumentClient
クラスを初期化するとき、私は気づきました。正確には、.OpenAsync()
に9つのHTTPリクエストが送信されます。これにより、クライアントの作成とアクティブ化はパフォーマンス面で非常にコストのかかる操作になります。すべてのリクエストを家に戻すには、最大1秒かかります。
この高価な操作を緩和するために、私はDocumentClient
をシングルトンにして、アプリケーションの存続期間にわたって参照を保持しています。
アプリケーションはAsp.Net Core MVCであり、このオブジェクトの参照を数日間メモリ内に保持することがあります。
質問:このオブジェクトをその期間シングルトンとして保存しても問題ありませんか?もしそうでなければ、それを処分する戦略は何でしょうか?または、初期化をより安価にする方法があります(つまり、これらの初期要求をしないでください)。
ありがとうございました!私はこの記事を見逃してしまった。シングルトンです! – trailmax