2017-06-01 126 views
1

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

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

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

回答

2

当使用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的还特定的超时属性之前所有的执行时间响应回来。

我希望找到一个每重试超时。

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

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

我希望找到一个每重试超时。据我所知,没有一个。 – Trey

+0

我根据您的评论更新了我的回复。 – Amor