Refactored service bus lifetiemes to singleton

This commit is contained in:
Khwezi Mngoma
2026-05-09 09:03:12 +02:00
parent d998aac7c4
commit 398a8d3827
10 changed files with 31 additions and 13 deletions
+6 -5
View File
@@ -1,26 +1,27 @@
using LiteCharms.Abstractions;
using LiteCharms.Infrastructure.ServiceBus;
using LiteCharms.Infrastructure.ServiceBus.Exchanges;
using LiteCharms.Infrastructure.ServiceBus.Queues;
namespace LiteCharms.Extensions;
public static class ServiceBus
{
public static IServiceCollection AddGeneralServiceBus(this IServiceCollection services) => services
.AddTransient<GeneralServiceBus>()
.AddSingleton<GeneralQueue>()
.AddHostedService<GeneralExchange>()
.AddKeyedTransient<IEventBus, GeneralServiceBus>(Constants.GeneralServiceBus)
.AddKeyedSingleton<IEventBus, GeneralServiceBus>(Constants.GeneralServiceBus)
.AddMemoryCache();
public static IServiceCollection AddEmailServiceBus(this IServiceCollection services) => services
.AddTransient<EmailServiceBus>()
.AddSingleton<EmailQueue>()
.AddHostedService<EmailExchange>()
.AddKeyedTransient<IEventBus, EmailServiceBus>(Constants.EmailServiceBus)
.AddMemoryCache();
public static IServiceCollection AddSalesServiceBus(this IServiceCollection services) => services
.AddTransient<SalesServiceBus>()
.AddSingleton<SalesQueue>()
.AddHostedService<SalesExchange>()
.AddKeyedTransient<IEventBus, SalesServiceBus>(Constants.SalesServiceBus)
.AddKeyedSingleton<IEventBus, SalesServiceBus>(Constants.SalesServiceBus)
.AddMemoryCache();
}