Camel RaabitMQ Благодарность
Я использую Camel для моего приложения обмена сообщениями. В моем случае использования у меня есть производитель (здесь RabbitMQ), а Consumer - это бин.
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())
}
});
Видимо, когда autoAck имеет значение false, подтверждение отправляется, когда выполнение process () завершено (пожалуйста, исправьте меня, если я здесь не прав)
Теперь я не хочу подтверждать, когда выполнение process () завершено, я хочу сделать это на более позднем этапе. у меня естьBlockingQueue
в моем MyCustomConsumer, где потребление () помещает сообщения, а MyCustomConsumer имеет другой механизм для их обработки. Я хочу подтвердить сообщение только тогда, когда MyCustomConsumer заканчивает обработку сообщений отBlockingQueue
, Как мне этого добиться?