Camel RaabitMQ Agradecimentos
Estou usando o Camel para meu aplicativo de mensagens. No meu caso de uso, tenho um produtor (que é o RabbitMQ aqui) e o Consumidor é um bean.
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())
}
});
Aparentemente, quando autoAck é falso, o reconhecimento é enviado quando a execução do processo () é concluída (corrija-me se estiver errado aqui)
Agora não quero reconhecer quando a execução do processo () estiver concluída, quero fazê-lo posteriormente. eu tenho umBlockingQueue
no meu MyCustomConsumer, onde consume () está colocando mensagens, e MyCustomConsumer possui um mecanismo diferente para processá-las. Quero confirmar a mensagem apenas quando MyCustomConsumer concluir o processamento de mensagens deBlockingQueue
. Como posso conseguir isso?