Ajuste no RateLimiter e controle de taxa mais granular

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.
This commit is contained in:
Adriano Serighelli 2025-10-24 14:45:49 -03:00
parent c98aec2c24
commit 0db548b273
2 changed files with 2 additions and 2 deletions

View File

@ -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;
}

View File

@ -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);