From e7390f76f694233077bf84ce1b7f6154a27d8519 Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Sun, 19 Nov 2017 22:55:45 +0100 Subject: [PATCH] Automatic calculation was incorrect, now only doing calculations in one place to not have any confusion. --- src/NServiceBus.RateLimiter/NServiceBus.RateLimiter.csproj | 4 ++-- src/NServiceBus.RateLimiter/Properties.cs | 1 - .../RateLimiterConfigurationExtension.cs | 6 ++---- src/NServiceBus.RateLimiter/RateLimiterFeature.cs | 4 +--- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/NServiceBus.RateLimiter/NServiceBus.RateLimiter.csproj b/src/NServiceBus.RateLimiter/NServiceBus.RateLimiter.csproj index 9c2b4f4..e39a805 100644 --- a/src/NServiceBus.RateLimiter/NServiceBus.RateLimiter.csproj +++ b/src/NServiceBus.RateLimiter/NServiceBus.RateLimiter.csproj @@ -3,13 +3,13 @@ netstandard2.0 NServiceBus.RateLimiter - 1.0.0 + 1.0.1 ramonsmits Rate Limiting NService Pipeline extension false https://github.com/ramonsmits/NServiceBus.RateLimiter - https://github.com/ramonsmits/NServiceBus.RateLimiter/blob/1.0.0/LICENSE + https://github.com/ramonsmits/NServiceBus.RateLimiter/blob/1.0.1/LICENSE True True https://github.com/ramonsmits/NServiceBus.RateLimiter diff --git a/src/NServiceBus.RateLimiter/Properties.cs b/src/NServiceBus.RateLimiter/Properties.cs index d8d27c8..5707848 100644 --- a/src/NServiceBus.RateLimiter/Properties.cs +++ b/src/NServiceBus.RateLimiter/Properties.cs @@ -4,5 +4,4 @@ class Properties { public TimeSpan Duration; public int Limit; - public int Concurrency; } \ No newline at end of file diff --git a/src/NServiceBus.RateLimiter/RateLimiterConfigurationExtension.cs b/src/NServiceBus.RateLimiter/RateLimiterConfigurationExtension.cs index d3c4e04..877b896 100644 --- a/src/NServiceBus.RateLimiter/RateLimiterConfigurationExtension.cs +++ b/src/NServiceBus.RateLimiter/RateLimiterConfigurationExtension.cs @@ -26,9 +26,8 @@ public static void ApplyRateLimiting(this EndpointConfiguration instance, int li { var properties = new global::Properties { - Duration = TimeSpan.FromSeconds(1), - Limit = limitPerSecond, - Concurrency = concurrency + Duration = TimeSpan.FromSeconds(1.0 / limitPerSecond * concurrency), + Limit = concurrency, }; var settings = instance.GetSettings(); settings.Set(properties); @@ -50,7 +49,6 @@ public static void ApplyRateLimiting(this EndpointConfiguration instance, int li { Duration = duration, Limit = limit, - Concurrency = limit }; var settings = instance.GetSettings(); settings.Set(properties); diff --git a/src/NServiceBus.RateLimiter/RateLimiterFeature.cs b/src/NServiceBus.RateLimiter/RateLimiterFeature.cs index 7872fa4..fd8fd79 100644 --- a/src/NServiceBus.RateLimiter/RateLimiterFeature.cs +++ b/src/NServiceBus.RateLimiter/RateLimiterFeature.cs @@ -7,8 +7,6 @@ protected override void Setup(FeatureConfigurationContext context) { if (!context.Settings.TryGet(out var properties)) return; - var limit = properties.Concurrency; - var duration = TimeSpan.FromSeconds((double)limit / properties.Limit); - context.Pipeline.Register(behavior: new RateLimitBehavior(limit, duration), description: nameof(RateLimitBehavior)); + context.Pipeline.Register(behavior: new RateLimitBehavior(properties.Limit, properties.Duration), description: nameof(RateLimitBehavior)); } } \ No newline at end of file