Spring Batch AmqpItemReader подтверждает - PullRequest
1 голос
/ 28 марта 2019

У меня проблема, когда я хочу вернуть мои данные в очередь, когда моя служба не работает, после чтения пакета с данными.Если я понял goos в amqp, я могу использовать подтверждение, но в документации для бани весной я не вижу никакой информации об этом.Кроме того, я проверяю исходный код AmqpItemReader и не вижу потока для подтверждения.Нужно ли реализовать пользовательский ItemReader с этим потоком или что-то пропустил?

1 Ответ

2 голосов
/ 28 марта 2019

AmqpItemReader использует простую операцию RabbitTemplate.receive(), которая немедленно подтверждает сообщение, если только оно не выполняется в транзакции.

Единственный способ контролировать подтверждения - использовать транзакции (с RabbitTransactionManager).

Менеджер транзакций будет подтверждать или запрашивать сообщение, если транзакция зафиксирована или откатана соответственно.

...