2017-06-01 125 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