私の消費者はキューをリッスンします。自動確認 = false。- I ACK の場合、メッセージはキューから削除されます。- ACK を返さなかった場合、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;
}
}