根据本教程,我使用var consumer = new EventingBasicConsumer(channel);
在队列上注册消息。
但是我注意到,如果删除了交换((强制使用API)或通过停止Rabbit),我实际上并没有收到任何错误消息的通知
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
};
我可以注册哪些事件来告知是否/何时删除了交换或者由于某种原因我是否以某种方式断开了连接?
答案 0 :(得分:0)
如果删除交换,没有任何问题。由于您的消费者是从队列消费的,因此唯一的结果是不再有消息从此交换路由到队列。
这与您的消费者从队列中断开连接或删除队列不同,这将导致您的使用者断开连接。查看HandleModelShutdown
和您的消费者可以在这种情况下实现的其他方法。