Mico.Demo/MassTransit示例代码/MassTransitDemo.Consumer/Consumers/PublishSubscribeConsumer2.cs

52 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using MassTransit;
using MassTransitDemo.Contracts;
namespace MassTransitDemo.Consumer.Consumers;
/// <summary>
/// 发布/订阅模式的消费者2
/// 用于演示多个消费者接收同一条广播消息
/// </summary>
public class PublishSubscribeConsumer2 : IConsumer<PublishSubscribeMessage>
{
private readonly ILogger<PublishSubscribeConsumer2> _logger;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="logger">日志记录器</param>
public PublishSubscribeConsumer2(ILogger<PublishSubscribeConsumer2> logger)
{
_logger = logger;
}
/// <summary>
/// 消费消息的方法
/// </summary>
/// <param name="context">消息上下文</param>
public Task Consume(ConsumeContext<PublishSubscribeMessage> 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;
}
}
}