【发布时间】:2018-09-04 06:13:28
【问题描述】:
我正在尝试设置对 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 方法没有触发。
我在这里错过了什么?
【问题讨论】: