gpt4 book ai didi

c# - DocumentDB 客户端生命周期

转载 作者:太空狗 更新时间:2023-10-29 20:02:28 24 4
gpt4 key购买 nike

要访问 DocumentDB/CosmosDB,我使用包 Microsoft.Azure.DocumentDB.Core(v1.3.2)。我注意到当我创建和初始化 DocumentClient 类时:

var documentClient = new DocumentClient(new Uri(endpointUrl), primaryKey);
await documentClient.OpenAsync();

有许多请求发送到端点以获取有关索引和其他信息的信息。确切地说,.OpenAsync() 上发出了 9 个 HTTP 请求。这使得客户端的创建和激活成为性能成本非常高的操作 - 需要一秒钟的时间才能将所有请求返回。

因此,为了减轻这种成本高昂的操作,我将 DocumentClient 设为单例,并在应用程序的生命周期内保留引用。

应用程序是 Asp.Net Core MVC,这可能会将此对象的引用保留在内存中数天。

问题:可以让这个对象作为单例保持这么长时间吗?如果不是,应该采取什么策略来处置它?或者有没有办法让初始化更便宜(即不发出这些初始请求?)。

最佳答案

我们自己也想知道这一点,并发现:

来自docs

SDK Usage Tip #1: Use a singleton DocumentDB client for the lifetime of your application Note that each DocumentClient instance is thread-safe and performs efficient connection management and address caching when operating in Direct Mode. To allow efficient connection management and better performance by DocumentClient, it is recommended to use a single instance of DocumentClient per AppDomain for the lifetime of the application.

我认为这仍然有效,现在您也可以用它来处理 CosmosDB。

关于c# - DocumentDB 客户端生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44687851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com