首页 > 解决方案 > 如何在 .Net5 Windows 服务中从 RabbitMQ 获取发布的消息?

问题描述

我正在实施 .Net5 Worker 服务。每当在 RabbitMQ 中发布消息时,我都需要在其中获取消息。并调用其他一些方法。但我无法从ConsumeMessage. 根本没有例外,我正在接收ea参数中的消息。

public string ConsumeMessage(string queueName)
{
    EventingBasicConsumer consumer;
    string message = "";
    consumer = new EventingBasicConsumer(this.model);
    consumer.Received += (model, ea) =>
    {
        var body = ea.Body.ToArray();
        message = Encoding.UTF8.GetString(body);
        this.model.BasicAck(ea.DeliveryTag, false);
    };
    model.BasicConsume(queueName, false, consumer);
    return message;
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    var message = _messageBroker.ConsumeMessage(_appSettings.RabbitMQConfig.QueueName);
    if (message != null)
    {
        //Do something with the message
    }
}

标签: c#.net.net-corerabbitmqwindows-services

解决方案


推荐阅读