diff --git a/Directory.Packages.props b/Directory.Packages.props index 76d4f9b..0371bcd 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,28 +1,28 @@ - + - + - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -32,7 +32,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Pandatech.CleanArchitecture.Api/appsettings.Production.json b/src/Pandatech.CleanArchitecture.Api/appsettings.Production.json index 9a9b3c0..378db7e 100644 --- a/src/Pandatech.CleanArchitecture.Api/appsettings.Production.json +++ b/src/Pandatech.CleanArchitecture.Api/appsettings.Production.json @@ -3,8 +3,8 @@ "MinimumLevel": { "Default": "Information", "Override": { - "Microsoft": "Information", - "System": "Information" + "Microsoft": "Warning", + "System": "Warning" } } }, diff --git a/src/Pandatech.CleanArchitecture.Infrastructure/DependencyInjection.cs b/src/Pandatech.CleanArchitecture.Infrastructure/DependencyInjection.cs index 83c561e..8a9d4db 100644 --- a/src/Pandatech.CleanArchitecture.Infrastructure/DependencyInjection.cs +++ b/src/Pandatech.CleanArchitecture.Infrastructure/DependencyInjection.cs @@ -1,4 +1,5 @@ using Communicator.Extensions; +using DistributedCache.Extensions; using DistributedCache.Options; using GridifyExtensions.Extensions; using MassTransit.PostgresOutbox.Extensions; @@ -19,13 +20,18 @@ public static class DependencyInjection public static WebApplicationBuilder AddInfrastructureLayer(this WebApplicationBuilder builder) { AssemblyRegistry.Add(typeof(AssemblyReference).Assembly); + var repoName = builder.Environment.GetShortEnvironmentName() + ":" + builder.Configuration.GetRepositoryName(); builder .AddSerilog() .AddOpenTelemetry() .AddResilienceDefaultPipeline() - .AddRedis(KeyPrefix.AssemblyNamePrefix) - .AddDistributedSignalR("DistributedSignalR") + .AddDistributedCache(o => + { + o.RedisConnectionString = builder.Configuration.GetRedisUrl(); + o.ChannelPrefix = repoName; + }) + .AddDistributedSignalR(builder.Configuration.GetRedisUrl(), repoName + ":SignalR") .AddPostgresContextPool(builder.Configuration.GetPostgresUrl()) .AddMassTransit(AssemblyRegistry.ToArray()) .AddCommunicator() diff --git a/src/Pandatech.CleanArchitecture.Infrastructure/Extensions/ConfigurationExtensions.cs b/src/Pandatech.CleanArchitecture.Infrastructure/Extensions/ConfigurationExtensions.cs index e9ba000..2666941 100644 --- a/src/Pandatech.CleanArchitecture.Infrastructure/Extensions/ConfigurationExtensions.cs +++ b/src/Pandatech.CleanArchitecture.Infrastructure/Extensions/ConfigurationExtensions.cs @@ -6,6 +6,8 @@ public static class ConfigurationExtensions { private const string AesKeyConfigurationPath = "Security:AESKey"; private const string RabbitMqConfigurationPath = "RabbitMq"; + private const string RepositoryNameConfigurationPath = "RepositoryName"; + private const string RedisConfigurationPath = "Redis"; private const string PostgresConfigurationPath = "Postgres"; private const string HangfireUserConfigurationPath = "Security:Hangfire:Username"; private const string HangfirePasswordConfigurationPath = "Security:Hangfire:Password"; @@ -23,6 +25,15 @@ public static string GetAesKey(this IConfiguration configuration) { return configuration[AesKeyConfigurationPath]!; } + public static string GetRepositoryName(this IConfiguration configuration) + { + return configuration[RepositoryNameConfigurationPath]!; + } + + public static string GetRedisUrl(this IConfiguration configuration) + { + return configuration.GetConnectionString(RedisConfigurationPath)!; + } public static string GetRabbitMqUrl(this IConfiguration configuration) { diff --git a/src/Pandatech.CleanArchitecture.Infrastructure/Extensions/MassTransitExtension.cs b/src/Pandatech.CleanArchitecture.Infrastructure/Extensions/MassTransitExtension.cs index 707f752..b44f56b 100644 --- a/src/Pandatech.CleanArchitecture.Infrastructure/Extensions/MassTransitExtension.cs +++ b/src/Pandatech.CleanArchitecture.Infrastructure/Extensions/MassTransitExtension.cs @@ -16,7 +16,6 @@ public static WebApplicationBuilder AddMassTransit(this WebApplicationBuilder bu { x.AddConsumers(assemblies); x.SetKebabCaseEndpointNameFormatter(); - x.UsingRabbitMq((context, cfg) => { cfg.Host(builder.Configuration.GetRabbitMqUrl()); @@ -46,14 +45,22 @@ public async Task CheckHealthAsync(HealthCheckContext context Uri = new Uri(rmqConnectionString), AutomaticRecoveryEnabled = true }; + var connection = default(IConnection); try { - await factory.CreateConnectionAsync(cancellationToken); + connection = await factory.CreateConnectionAsync(cancellationToken); return HealthCheckResult.Healthy("RabbitMQ is healthy."); } catch (Exception e) { return HealthCheckResult.Unhealthy("RabbitMQ is unhealthy.", e); } + finally + { + if (connection is not null) + { + await connection.CloseAsync(cancellationToken); + } + } } } \ No newline at end of file