gpt4 book ai didi

java - RabbitMQ 消费者不收听 UN-ACKED 消息

转载 作者:行者123 更新时间:2023-11-30 09:18:55 30 4
gpt4 key购买 nike

我的消费者监听一个队列。自动确认 = 假。- 如果我确认消息将从队列中删除。- 如果我没有确认,RabbitMQ 将按预期将消息放入队列。我的问题是我的消费者没有继续收听那些未确认的消息。为验证这一点,如果我发出一条新消息,消费者会收到它。

以下是我的代码块。有什么解决办法吗?

while (true) {
try {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
String response = sendEndpoint(message);
if (!response.equals(ERROR_CODE)) {
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
}
} catch (InterruptedException ignore) {
continue;
}
}

最佳答案

你试过 basic.reject 了吗?如前所述in this blog entry , basic.reject 会将其传递到同一个队列,“RabbitMQ 不会注意阻止同一消费者再次获取消息”。所以这应该适合你。

根据您尝试执行的操作,您可能还对死信功能感兴趣。参见 here获取更多信息。

关于java - RabbitMQ 消费者不收听 UN-ACKED 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18242493/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com