diff --git a/Elecciones-Web/src/Elecciones.Worker/Program.cs b/Elecciones-Web/src/Elecciones.Worker/Program.cs index 448aa68..1006b47 100644 --- a/Elecciones-Web/src/Elecciones.Worker/Program.cs +++ b/Elecciones-Web/src/Elecciones.Worker/Program.cs @@ -83,25 +83,16 @@ builder.Services.AddHttpClient("ElectoralApiClient", client => .AddPolicyHandler(GetRetryPolicy()); // --- LIMITADOR DE VELOCIDAD BASADO EN TOKEN BUCKET --- -/*builder.Services.AddSingleton(sp => +builder.Services.AddSingleton(sp => new TokenBucketRateLimiter(new TokenBucketRateLimiterOptions { - // El tamaño máximo del cubo (la ráfaga máxima que permitimos). - TokenLimit = 50, - - // Con qué frecuencia se añaden nuevas fichas al cubo. - ReplenishmentPeriod = TimeSpan.FromSeconds(1), - - // Cuántas fichas se añaden en cada período. - TokensPerPeriod = 20, - - // Cuántas peticiones pueden estar en cola esperando una ficha. - QueueLimit = 1000, - - // Cómo se comporta cuando la cola está llena. + TokenLimit = 50, // Ráfaga máxima permitida + ReplenishmentPeriod = TimeSpan.FromSeconds(1), + TokensPerPeriod = 20, // Ritmo de recarga: 20 peticiones por segundo + QueueLimit = 1000, QueueProcessingOrder = QueueProcessingOrder.OldestFirst })); -*/ + builder.Services.AddScoped(); // Registramos el servicio de token como un Singleton para que sea compartido.