我将尝试设置一个订阅RabbitMQ队列并传入自定义事件处理程序。所以我有一个名为
我看到队列开始接收消息,但是
RabbitMQClient
的类,其中包含以下方法:public void Subscribe(string queueName, EventHandler<BasicDeliverEventArgs> receivedHandler)
{
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(
queue: queueName,
durable: false,
exclusive: false,
autoDelete: false,
arguments: null
);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += receivedHandler;
channel.BasicConsume(
queue: queueName,
autoAck: false,
consumer: consumer
);
}
}
}
我正在使用依赖注入,因此我有一个用于RabbitMQClient
(单例)接口的实现。
在我的消费类中,我有这个方法,我希望它充当EventHandler
。
public void Consumer_Received(object sender, BasicDeliverEventArgs e)
{
var message = e.Body.FromByteArray<ProgressQueueMessage>();
}
我正在尝试这样订阅队列:
rabbitMQClient.Subscribe(Consts.RabbitMQ.ProgressQueue, Consumer_Received);
我看到队列开始接收消息,但是
Consumer_Received
方法没有触发。我错过了什么吗?