50 lines
1.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|