Camel RaabitMQ-Bestätigung

Ich verwende Camel für meine Messaging-Anwendung. In meinem Anwendungsfall habe ich einen Produzenten (hier RabbitMQ) und der Consumer ist eine Bohne.

from("rabbitmq://127.0.0.1:5672/exDemo?queue=testQueue&username=guest&password=guest&autoAck=false&durable=true&exchangeType=direct&autoDelete=false")
                .throttle(100).timePeriodMillis(10000)
                .process(new Processor() {                              
                        @Override
                        public void process(Exchange exchange) throws Exception {
                            MyCustomConsumer.consume(exchange.getIn().getBody())
                        }
                    });

Wenn autoAck falsch ist, wird anscheinend eine Bestätigung gesendet, wenn die Ausführung von process () abgeschlossen ist (bitte korrigieren Sie mich, wenn ich hier falsch liege).

Jetzt möchte ich nicht bestätigen, wann die Ausführung von process () abgeschlossen ist. Ich möchte dies zu einem späteren Zeitpunkt tun. Ich habe einBlockingQueue in meinem MyCustomConsumer, in dem consume () Nachrichten ablegt, und MyCustomConsumer hat einen anderen Mechanismus, um sie zu verarbeiten. Ich möchte eine Nachricht nur dann bestätigen, wenn MyCustomConsumer die Verarbeitung der Nachrichten von beendet hatBlockingQueue. Wie kann ich das erreichen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage