我在调用:
GetResponse response = channel.basicGet("some.queue", false); // no auto-ack
....
channel.basicAck(deliveryTag, ...);
但是,当我调用basicGet
时,队列中的消息将保持“Ready”状态,而不是“Unacknowledged”。我希望他们不被承认,以便我可以basic.ack
他们(从而将他们从队列中丢弃),或basic.nack
他们
答案 0 :(得分:4)
我正在执行以下操作来模仿延迟确认:
.getBody()
)
这将从此待处理队列中删除它,阻止TTL重新排队答案 1 :(得分:2)
在ack
之后立即执行get
工作正常。但是,在我的情况下,他们被请求分开了。 spring的模板在每次执行时关闭通道和连接。所以有三种选择:
在前两种情况下,你不能用spring RabbitTemplate