From 0db548b273b6320d0a56b64923950910b24566be Mon Sep 17 00:00:00 2001 From: Adriano Serighelli Date: Fri, 24 Oct 2025 14:45:49 -0300 Subject: [PATCH] Ajuste no RateLimiter e controle de taxa mais granular MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Alterada a inicialização da variável `_windowStart` no arquivo RateLimiter.cs para simplificar o cálculo do início da janela de tempo, removendo o arredondamento baseado no intervalo. No arquivo Program.cs, o limite de requisições do RateLimiter foi reduzido de 400/minuto para 12/segundo, permitindo um controle de taxa mais preciso e restritivo. --- Infrastructure/RateLimiter.cs | 2 +- Presentation/Program.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Infrastructure/RateLimiter.cs b/Infrastructure/RateLimiter.cs index faaa214..403acd6 100644 --- a/Infrastructure/RateLimiter.cs +++ b/Infrastructure/RateLimiter.cs @@ -13,7 +13,7 @@ _maxRequests = maxRequests; _interval = interval; var now = DateTime.Now; - _windowStart = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute - (now.Minute % interval.Minutes), 0); + _windowStart = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0); _requestCount = 0; } diff --git a/Presentation/Program.cs b/Presentation/Program.cs index 6bbb86e..eaf2776 100644 --- a/Presentation/Program.cs +++ b/Presentation/Program.cs @@ -29,7 +29,7 @@ class Program ServerCertificateCustomValidationCallback = (HttpRequestMessage req, X509Certificate2? cert, X509Chain? chain, SslPolicyErrors errors) => true }); - var rateLimiter = new RateLimiter(400, TimeSpan.FromMinutes(1)); + var rateLimiter = new RateLimiter(12, TimeSpan.FromSeconds(1)); var useCase = new ProcessarMedicoesUseCase(postgresRepo, accessRepo, httpClient, rateLimiter); await useCase.ExecuteAsync(dataIni, dataFim, caminhoLog, CancellationToken.None);