fix: mogo pool e limits
All checks were successful
Deploy QR Rapido / test (push) Successful in 32s
Deploy QR Rapido / build-and-push (push) Successful in 7m7s
Deploy QR Rapido / deploy-staging (push) Has been skipped
Deploy QR Rapido / deploy-production (push) Successful in 1m38s

This commit is contained in:
Ricardo Carneiro 2025-08-25 21:32:28 -03:00
parent e960e4af03
commit 81ff8d2ae3
2 changed files with 9 additions and 3 deletions

View File

@ -11,6 +11,7 @@ namespace QRRapidoApp.Data
public MongoDbContext(IConfiguration configuration, IMongoClient? mongoClient = null)
{
var connectionString = configuration.GetConnectionString("MongoDB");
connectionString = connectionString + (connectionString.Contains("?") ? "&" : "?") + "maxPoolSize=200&minPoolSize=50&maxIdleTimeMS=30000";
if (mongoClient != null && !string.IsNullOrEmpty(connectionString))
{
try

View File

@ -23,6 +23,7 @@ using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.RateLimiting;
using System.Threading.RateLimiting;
using Microsoft.AspNetCore.Server.Kestrel.Core;
var builder = WebApplication.CreateBuilder(args);
@ -219,15 +220,19 @@ builder.Services.AddRateLimiter(options =>
options.RejectionStatusCode = 429;
options.AddFixedWindowLimiter("api", options =>
{
options.PermitLimit = 600; // 10 req/s = 600 req/min
options.PermitLimit = 600;
options.Window = TimeSpan.FromMinutes(1);
//options.PermitLimit = 100;
//options.Window = TimeSpan.FromMinutes(1);
options.QueueProcessingOrder = QueueProcessingOrder.OldestFirst;
options.QueueLimit = 10;
});
});
builder.Services.Configure<KestrelServerOptions>(options =>
{
options.Limits.MaxConcurrentConnections = 2000;
options.Limits.RequestHeadersTimeout = TimeSpan.FromSeconds(30);
});
var app = builder.Build();
app.UseRateLimiter();