protected async Task <ILeverConfiguration> FetchConfigurationWithRetriesOnFailAsync(CancellationToken cancellationToken = default) { ILeverConfiguration configuration = null; var maxRetryTimeSecondsString = new ConfigurationManagerAppSettings().GetAppSetting("MaxStartupRetryTimeInSeconds") ?? "100"; var failCount = 0; var watch = Stopwatch.StartNew(); while (watch.Elapsed < TimeSpan.FromSeconds(double.Parse(maxRetryTimeSecondsString))) { try { configuration = await FetchConfigurationAsync(cancellationToken); if (configuration != null) { break; } } catch (Exception e) { failCount++; LogHelper.FallbackSafeLog(LogSeverityLevel.Warning, $"(InstanceId: {Environment.GetEnvironmentVariable("WEBSITE_INSTANCE_ID")}) " + $"Failed to fetch configuration for service tenant {ServiceTenant}." + $" This was try number {failCount} after {watch.Elapsed.TotalSeconds} s.", e); await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken); } } return(configuration); }
public void ReadNestedSettingFromJsonFile() { var getter = new ConfigurationManagerAppSettings().WithLocalSettingsSupport(new FileInfo("Application/appsettings.json")); UT.Assert.IsNull(getter.GetAppSetting("FruitsAndStars"), "Only stringy values should be supported"); }
public void ReadSimpleSettingsFromJsonFile() { var getter = new ConfigurationManagerAppSettings().WithLocalSettingsSupport(new FileInfo("Application/appsettings.json")); UT.Assert.AreEqual("Bar", getter.GetAppSetting("Foo")); }