我创建了一个队列:
_channel = rmqConnection.CreateModel();
_channel.QueueDeclare("myqueue", false, false, false, null);
_channel.BasicAcks += _channel_BasicAcks;
_channel.BasicNacks += _channel_BasicNacks;
_channel.BasicRecoverOk += _channel_BasicRecoverOk;
_channel.BasicReturn += _channel_BasicReturn;
_channel.CallbackException += _channel_CallbackException;
_channel.FlowControl += _channel_FlowControl;
_channel.ModelShutdown += _channel_ModelShutdown;
然后我想订阅队列将删除时(以及如果)队列的事件。 所以,当我手动删除队列进行测试时:我无法处理事件。
如何处理有关队列删除\毁灭的事件?
P.S。添加一些新代码:
var consumer = new EventingBasicConsumer(_channel);
consumer.Received += OnMessageRecieved;
consumer.ConsumerCancelled += Consumer_ConsumerCancelled;
consumer.Registered += Consumer_Registered;
consumer.Shutdown += Consumer_Shutdown;
consumer.Unregistered += Consumer_Unregistered;
_channel.BasicConsume(SharebleConst.RmqQueueName, false, consumer);
创建队列时,Consumer_Registered
会上升。
当我删除队列时,Consumer_ConsumerCancelled
上升
答案 0 :(得分:1)
如果删除了队列,则不是一种获得通知的方法。
您可以使用通知交换来实现自己的工具,并在每次创建或销毁队列时发送消息。
或在一般情况下,发送更改状态消息