Refactor RabbitMQ email queue into publisher/consumer
Refactored the RabbitMQ-based email queue system by splitting `OutgoingEmailQueue` into `OutgoingEmailPublisher` and `OutgoingEmailConsumer` to separate publishing and consuming responsibilities. - Introduced `IOutgoingEmailConsumer` and renamed `IOutgoingEmailQueue` to `IOutgoingEmailPublisher` for clarity. - Updated `SendEmailCommandHandler` to use the new publisher abstraction. - Added `RabbitMqConnectionFactory` to centralize RabbitMQ connection management. - Updated dependency injection to register new services. - Simplified RabbitMQ initialization logic by delegating it to `RabbitMqConnectionFactory`. - Enhanced logging for better observability. - Improved modularity and maintainability by separating concerns between message publishing and consuming.
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
namespace DigitalData.MessagingService.Application.Common.Interfaces;
|
||||
|
||||
/// <summary>
|
||||
/// Email queue interface for outgoing emails.
|
||||
/// </summary>
|
||||
public interface IOutgoingEmailConsumer
|
||||
{
|
||||
}
|
||||
@@ -6,7 +6,7 @@ namespace DigitalData.MessagingService.Application.Common.Interfaces;
|
||||
/// <summary>
|
||||
/// Email queue interface for outgoing emails.
|
||||
/// </summary>
|
||||
public interface IOutgoingEmailQueue
|
||||
public interface IOutgoingEmailPublisher
|
||||
{
|
||||
Task EnqueueAsync(OutgoingEmailEvent outgoingEmailEvent, CancellationToken cancellationToken = default);
|
||||
|
||||
Reference in New Issue
Block a user