using MassTransit;
using MassTransitDemo.Contracts;
namespace MassTransitDemo.Consumer.Consumers;
///
/// 发布/订阅模式的消费者1
/// 用于接收并处理广播消息
///
public class PublishSubscribeConsumer1 : IConsumer
{
private readonly ILogger _logger;
///
/// 构造函数
///
/// 日志记录器
public PublishSubscribeConsumer1(ILogger logger)
{
_logger = logger;
}
///
/// 消费消息的方法
///
/// 消息上下文
public Task Consume(ConsumeContext context)
{
try
{
_logger.LogInformation("【消费者1】收到发布/订阅消息");
_logger.LogInformation(" MessageId: {MessageId}", context.Message.MessageId);
_logger.LogInformation(" CreatedAt: {CreatedAt}", context.Message.CreatedAt);
_logger.LogInformation(" Title: {Title}", context.Message.Title);
_logger.LogInformation(" Content: {Content}", context.Message.Content);
_logger.LogInformation(" Priority: {Priority}", context.Message.Priority);
// 模拟处理逻辑
_logger.LogInformation("【消费者1】消息处理完成");
return Task.CompletedTask;
}
catch (Exception ex)
{
_logger.LogError(ex, "【消费者1】消息处理失败");
throw;
}
}
}