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

50 lines
1.6 KiB
C#

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