using MassTransit; using MassTransitDemo.Contracts; namespace MassTransitDemo.Consumer.Consumers; /// /// 发布/订阅模式的消费者2 /// 用于演示多个消费者接收同一条广播消息 /// public class PublishSubscribeConsumer2 : IConsumer { private readonly ILogger _logger; /// /// 构造函数 /// /// 日志记录器 public PublishSubscribeConsumer2(ILogger logger) { _logger = logger; } /// /// 消费消息的方法 /// /// 消息上下文 public Task Consume(ConsumeContext context) { try { _logger.LogInformation("【消费者2】收到发布/订阅消息"); _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); // 模拟不同的处理逻辑(与消费者1不同的处理方式) var processedContent = $"[消费者2处理] {context.Message.Content.ToUpper()}"; _logger.LogInformation(" 处理结果: {ProcessedContent}", processedContent); _logger.LogInformation("【消费者2】消息处理完成"); return Task.CompletedTask; } catch (Exception ex) { _logger.LogError(ex, "【消费者2】消息处理失败"); throw; } } }