使用DocumentClient.ReadOfferAsync获取缩放状态

时间:2019-08-08 10:14:06

标签: azure-cosmosdb scaling status

我正在使用azure.DocumentClient自动缩放cosmosDb。我想跳过是否有正在进行的缩放,请等待1分钟,然后重试。

我在这里的“ https://docs.microsoft.com/en-us/azure/cosmos-db/set-throughput”建议我可以使用DocumentClient.ReadOfferAsync并查看缩放状态。

我不明白应该在返回类型中寻找哪种返回类型的属性?

1 个答案:

答案 0 :(得分:0)

V3 SDK客户端提供了一种通过ThroughputResponse属性IsReplacePending的一部分来了解状态的方法。

这是在容器上调用ReadThroughputAsync时获得的:

Container container = database.GetContainer(containerId);
var throughputResponse = await simpleContainer.ReadThroughputAsync();

此属性为checking for a particular Header in the response。如果您使用的是V2 SDK,则可能可以检查ResourceResponse中的标头,并查找相同的标头以了解升级是否仍在进行中。

public bool? IsReplacePending
{
    get
    {
        if (this.Headers.GetHeaderValue<string>(WFConstants.BackendHeaders.OfferReplacePending) != null)
        {
            return Boolean.Parse(this.Headers.GetHeaderValue<string>(WFConstants.BackendHeaders.MinimumRUsForOffer));
        }
        return null;
    }
}