Skip to content

Commit 71a346e

Browse files
Shorten the defeult timeout of individual call to backend
1 parent 40768ff commit 71a346e

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationOptions.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT license.
33
//
44
using Azure.Core;
5+
using Azure.Core.Pipeline;
56
using Azure.Data.AppConfiguration;
67
using Microsoft.Extensions.Azure;
78
using Microsoft.Extensions.Configuration.AzureAppConfiguration.AzureKeyVault;
@@ -11,6 +12,7 @@
1112
using System;
1213
using System.Collections.Generic;
1314
using System.Linq;
15+
using System.Net.Http;
1416
using System.Threading.Tasks;
1517

1618
namespace Microsoft.Extensions.Configuration.AzureAppConfiguration
@@ -23,6 +25,7 @@ public class AzureAppConfigurationOptions
2325
{
2426
private const int MaxRetries = 2;
2527
private static readonly TimeSpan MaxRetryDelay = TimeSpan.FromMinutes(1);
28+
private static readonly TimeSpan NetworkTimeout = TimeSpan.FromSeconds(10);
2629

2730
private List<KeyValueWatcher> _changeWatchers = new List<KeyValueWatcher>();
2831
private List<KeyValueWatcher> _multiKeyWatchers = new List<KeyValueWatcher>();
@@ -473,6 +476,10 @@ private static ConfigurationClientOptions GetDefaultClientOptions()
473476
clientOptions.Retry.MaxDelay = MaxRetryDelay;
474477
clientOptions.Retry.Mode = RetryMode.Exponential;
475478
clientOptions.AddPolicy(new UserAgentHeaderPolicy(), HttpPipelinePosition.PerCall);
479+
clientOptions.Transport = new HttpClientTransport(new HttpClient()
480+
{
481+
Timeout = NetworkTimeout
482+
});
476483

477484
return clientOptions;
478485
}

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,6 +1133,13 @@ await ExecuteWithFailOverPolicyAsync<object>(clients, async (client) =>
11331133

11341134
private bool IsFailOverable(AggregateException ex)
11351135
{
1136+
TaskCanceledException tce = ex.InnerExceptions?.LastOrDefault(e => e is TaskCanceledException) as TaskCanceledException;
1137+
1138+
if (tce != null && tce.InnerException is TimeoutException)
1139+
{
1140+
return true;
1141+
}
1142+
11361143
RequestFailedException rfe = ex.InnerExceptions?.LastOrDefault(e => e is RequestFailedException) as RequestFailedException;
11371144

11381145
return rfe != null ? IsFailOverable(rfe) : false;

0 commit comments

Comments
 (0)