From 29a12aa3b0185cbac2a77818c019f887e7d95b0e Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sat, 12 Aug 2023 07:19:27 +0300 Subject: [PATCH] Add one minute back-off level for all providers (cherry picked from commit d8f314ff0ef64e8d90b21b7865e46be74db5e570) Closes #2792 --- .../ThingiProviderTests/ProviderStatusServiceFixture.cs | 7 ++++--- .../ThingiProvider/Status/EscalationBackOff.cs | 3 ++- .../ThingiProvider/Status/ProviderStatusServiceBase.cs | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/NzbDrone.Core.Test/ThingiProviderTests/ProviderStatusServiceFixture.cs b/src/NzbDrone.Core.Test/ThingiProviderTests/ProviderStatusServiceFixture.cs index 7d91d7d91..17dd454b8 100644 --- a/src/NzbDrone.Core.Test/ThingiProviderTests/ProviderStatusServiceFixture.cs +++ b/src/NzbDrone.Core.Test/ThingiProviderTests/ProviderStatusServiceFixture.cs @@ -34,6 +34,7 @@ namespace NzbDrone.Core.Test.ThingiProviderTests public class ProviderStatusServiceFixture : CoreTest { + private readonly TimeSpan _disabledTillPrecision = TimeSpan.FromMilliseconds(500); private DateTime _epoch; [SetUp] @@ -90,7 +91,7 @@ namespace NzbDrone.Core.Test.ThingiProviderTests var status = Subject.GetBlockedProviders().FirstOrDefault(); status.Should().NotBeNull(); status.DisabledTill.Should().HaveValue(); - status.DisabledTill.Value.Should().BeCloseTo(_epoch + TimeSpan.FromMinutes(5), 500); + status.DisabledTill.Value.Should().BeCloseTo(_epoch + TimeSpan.FromMinutes(1), _disabledTillPrecision); } [Test] @@ -133,7 +134,7 @@ namespace NzbDrone.Core.Test.ThingiProviderTests var status = Subject.GetBlockedProviders().FirstOrDefault(); status.Should().NotBeNull(); status.DisabledTill.Should().HaveValue(); - status.DisabledTill.Value.Should().BeCloseTo(_epoch + TimeSpan.FromMinutes(15), 500); + status.DisabledTill.Value.Should().BeCloseTo(_epoch + TimeSpan.FromMinutes(5), _disabledTillPrecision); } [Test] @@ -160,7 +161,7 @@ namespace NzbDrone.Core.Test.ThingiProviderTests status.Should().NotBeNull(); origStatus.EscalationLevel.Should().Be(3); - status.DisabledTill.Should().BeCloseTo(_epoch + TimeSpan.FromMinutes(5), 500); + status.DisabledTill.Should().BeCloseTo(_epoch + TimeSpan.FromMinutes(5), _disabledTillPrecision); } } } diff --git a/src/NzbDrone.Core/ThingiProvider/Status/EscalationBackOff.cs b/src/NzbDrone.Core/ThingiProvider/Status/EscalationBackOff.cs index 304613d58..71dafe7e4 100644 --- a/src/NzbDrone.Core/ThingiProvider/Status/EscalationBackOff.cs +++ b/src/NzbDrone.Core/ThingiProvider/Status/EscalationBackOff.cs @@ -1,10 +1,11 @@ -namespace NzbDrone.Core.ThingiProvider.Status +namespace NzbDrone.Core.ThingiProvider.Status { public static class EscalationBackOff { public static readonly int[] Periods = { 0, + 60, 5 * 60, 15 * 60, 30 * 60, diff --git a/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs b/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs index 129617d3b..15cf84d3b 100644 --- a/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs +++ b/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs @@ -116,7 +116,7 @@ namespace NzbDrone.Core.ThingiProvider.Status if (inStartupGracePeriod && minimumBackOff == TimeSpan.Zero && status.DisabledTill.HasValue) { - var maximumDisabledTill = now + TimeSpan.FromSeconds(EscalationBackOff.Periods[1]); + var maximumDisabledTill = now + TimeSpan.FromSeconds(EscalationBackOff.Periods[2]); if (maximumDisabledTill < status.DisabledTill) { status.DisabledTill = maximumDisabledTill;