我们一直在使用RabbitMQ作为项目中的消息传递服务。我们将把消息推入一个队列中,并将在消息使用者处接收消息,并尝试进入数据库。一旦数据输入到数据库中,我们将发送肯定确认返回到服务器,如果不是,我们将发送否定确认。RabbitMQ引发共享队列关闭错误
我已经创建消息消费者作为Windows service.Message已成功进入消息使用者(表中的条目),但异常日志“共享队列已关闭”已被良好接收。
请找到代码块。
while (true)
{
try
{
if (!Connection.IsOpen || !Channel.IsOpen)
{
CreateConnection(existConnectionConfig, QueueName);
consumer = new QueueingBasicConsumer(Channel);
consumerTag=Channel.BasicConsume(QueueName,false,consumer);
}
BasicDeliverEventArgs e = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
IBasicProperties props = e.BasicProperties;
byte[] body = e.Body;
bool ack = onMessageReceived(body);
if (ack == true)
{
Channel.BasicAck(e.DeliveryTag, false);
}
else
Channel.BasicNack(e.DeliveryTag, false, true);
}
catch (Exception ex)
{
//Logged the exception in text file where i could see the
//message as "Shared queue closed"
}
}
我也曾在网上冲浪,但无法解决问题。如果有人能够帮助我,这将会有所帮助。
由于提前, 塞尔瓦
这种情况下总共有多少乘客参与? – Paul