【问题标题】:CloudTableClient client side timeoutCloudTableClient 客户端超时
【发布时间】:2017-06-13 15:28:30
【问题描述】:

使用 CloudTableClient 时,有没有办法指定 client 端超时?

TableRequestOptions RetryPolicy 和 ServerTimeout 控制重试尝试的次数、尝试之间的延迟和存储服务端超时,但似乎没有涵盖客户端每次尝试超时(如 HttpClient.Timeout 属性)。

我对依赖 ServerSideTimeout 的担忧在于延迟连接到实际服务器。

【问题讨论】:

    标签: c# azure azure-storage azure-table-storage


    【解决方案1】:

    使用 CloudTableClient 时,有没有办法指定客户端超时?

    TableRequestOptions 的MaximumExecutionTime 属性可以帮助我们确定所有可能重试请求的最大执行时间,包括客户端和服务器端使用的时间。

    tableClient.DefaultRequestOptions.MaximumExecutionTime = new TimeSpan(0, 0, 0, 0, 100);
    

    如果无法在特定时间内处理请求,则会引发异常。

    Microsoft.WindowsAzure.Storage.StorageException: 'The client could not finish the operation within specified timeout.'
    

    类似于 HttpClient.Timeout 属性

    HttpClient 的 Timeout 属性还指定了响应返回之前的所有执行时间。

    我希望找到每次重试超时。

    我建议你使用MaximumExecutionTime。如果您需要客户端 DNS 解析超时,您可以获取或设置 ServicePointManager 的 DnsRefreshTimeout 属性。

    ServicePointManager.DnsRefreshTimeout = 4*60*1000; // 4 minutes
    

    【讨论】:

    • 我希望找到每次重试超时。据我所知,没有。
    猜你喜欢
    • 2019-05-05
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 2010-12-21
    相关资源
    最近更新 更多