1
我試圖實現RabbitMQ請求響應模式。RabbitMQ請求 - 響應模式 - 消費者在處理第一條消息後停止監聽隊列
我的目標是總是有一個消費者傾聽隊列並回復消息。
var consumer = new EventingBasicConsumer(channel);
channel.BasicConsume(queue: 'listensToThisQueue',
noAck: true,
consumer: consumer);
consumer.Received += (model, ea) =>
{
// Replying to client
channel.BasicPublish(exchange: '',
routingKey: routingKey,
basicProperties: props,
body: message);
// Basic ack
channel.BasicAck(deliveryTag: incomingDeliveryTag,
multiple: false);
}
實際上一切工作正常:
所以我已經設置的服務器最多
- 客戶端發送第一條消息
- 服務器接收和回覆
- 客戶端獲取信息
唯一的問題是,在FIN FINING Received
方法(執行BasicAck
後) - 消費者停止收聽listenToQueue
(實際上,在UI管理中,我在該隊列中看到0個消費者)。
這是爲什麼?
所以實際上我可以消除「BasicAck」,它會工作 – ohadinho