gpt4 book ai didi

azure - CosmosClient 能否给出由于限制而发生的重试次数(http 429)?

转载 作者:行者123 更新时间:2023-12-03 04:00:25 31 4
gpt4 key购买 nike

我有以下代码,可以批量插入很多项目

var batchSize = 200;

for (int i = 0; i < items.Count() / batchSize + 1; i++)
{
var insertOperations = new List<Task<ItemResponse<MyType>>>();

var batchItems = items.Skip(i * batchSize).Take(batchSize);

if (batchItems.Count() == 0)
break;

foreach (var batchItem in batchItems)
{
insertOperations.Add(container.CreateItemAsync(batchItem));
}

await Task.WhenAll(insertOperations);
}

我的 CosmosClient 是

CosmosClientOptions options = new CosmosClientOptions
{
ConnectionMode = ConnectionMode.Direct,
AllowBulkExecution = true,
MaxRetryAttemptsOnRateLimitedRequests = 30,
MaxRetryWaitTimeOnRateLimitedRequests = TimeSpan.FromSeconds(180)
};

根据 Azure 门户中的指标,插入大量项目时我似乎受到限制。由于我允许较长的等待时间和多次重试,因此代码将花费更长的时间,但最终会完成工作。我有兴趣记录所需的重试次数,因为它将帮助我了解哪些操作导致了最大的限制。

是否可以找出 Cosmos 客户端执行该操作需要重试多少次?

最佳答案

您可以在作为操作响应的一部分公开的诊断中看到它们。每个container.CreateItemAsync(batchItem)返回 ItemResponse<T> .

ItemResponse .Diagnostics.ToString() 包含该特定操作的信息,包括它可能经历的任何重试。

关于azure - CosmosClient 能否给出由于限制而发生的重试次数(http 429)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62637000/

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