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