首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CosmosClient是否可以给出由于节流而发生的重试次数(http 429)?

CosmosClient是否可以给出由于节流而发生的重试次数(http 429)?
EN

Stack Overflow用户
提问于 2020-06-29 19:20:33
回答 1查看 116关注 0票数 1

我有以下代码,我在其中批量插入了很多项

代码语言:javascript
复制
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是

代码语言:javascript
复制
CosmosClientOptions options = new CosmosClientOptions
{
    ConnectionMode = ConnectionMode.Direct,
    AllowBulkExecution = true,
    MaxRetryAttemptsOnRateLimitedRequests = 30,
    MaxRetryWaitTimeOnRateLimitedRequests = TimeSpan.FromSeconds(180)
};

根据Azure门户中的度量标准,在插入大量项目时,我似乎被限制住了。因为我允许很长的等待时间和大量的重试,所以代码会花费更长的时间,但它最终会完成工作。我对记录所需的重试次数很感兴趣,因为这将帮助我了解哪些操作导致了最大的节流。

有没有可能知道cosmos客户端需要重试多少次才能执行操作?

EN

回答 1

Stack Overflow用户

发布于 2020-06-30 06:26:46

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62637000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档