2

私の消費者はキューをリッスンします。自動確認 = 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;
        }
    }
4

1 に答える 1