Skip to content

Commit 4e7f8b0

Browse files
Shorten the defeult timeout of individual call to backend
1 parent 7dc547c commit 4e7f8b0

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.Configuration.AzureAppConfiguration.AzureKeyVault;
78
using Microsoft.Extensions.Configuration.AzureAppConfiguration.Extensions;
@@ -10,6 +11,7 @@
1011
using System;
1112
using System.Collections.Generic;
1213
using System.Linq;
14+
using System.Net.Http;
1315
using System.Threading.Tasks;
1416

1517
namespace Microsoft.Extensions.Configuration.AzureAppConfiguration
@@ -22,6 +24,7 @@ public class AzureAppConfigurationOptions
2224
{
2325
private const int MaxRetries = 2;
2426
private static readonly TimeSpan MaxRetryDelay = TimeSpan.FromMinutes(1);
27+
private static readonly TimeSpan NetworkTimeout = TimeSpan.FromSeconds(10);
2528

2629
private List<KeyValueWatcher> _individualKvWatchers = new List<KeyValueWatcher>();
2730
private List<KeyValueWatcher> _ffWatchers = new List<KeyValueWatcher>();
@@ -509,6 +512,10 @@ private static ConfigurationClientOptions GetDefaultClientOptions()
509512
clientOptions.Retry.MaxDelay = MaxRetryDelay;
510513
clientOptions.Retry.Mode = RetryMode.Exponential;
511514
clientOptions.AddPolicy(new UserAgentHeaderPolicy(), HttpPipelinePosition.PerCall);
515+
clientOptions.Transport = new HttpClientTransport(new HttpClient()
516+
{
517+
Timeout = NetworkTimeout
518+
});
512519

513520
return clientOptions;
514521
}

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

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

11981198
private bool IsFailOverable(AggregateException ex)
11991199
{
1200+
TaskCanceledException tce = ex.InnerExceptions?.LastOrDefault(e => e is TaskCanceledException) as TaskCanceledException;
1201+
1202+
if (tce != null && tce.InnerException is TimeoutException)
1203+
{
1204+
return true;
1205+
}
1206+
12001207
RequestFailedException rfe = ex.InnerExceptions?.LastOrDefault(e => e is RequestFailedException) as RequestFailedException;
12011208

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

0 commit comments

Comments
 (0)