@TransactionalEventListener при весенней партии - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу обработать что-то после коммита на spring batch.

И я попробовал этот пример (https://dzone.com/articles/transaction-synchronization-and-spring-application).

Этот пример отлично работает на springboot как этот поток.

1. some update query and event publish by ApplicationEventPublisher
2. some update query and event publish by ApplicationEventPublisher
3. some update query and event publish by ApplicationEventPublisher
4. commit
5. after commit logic I maked
6. after commit logic I maked
7. after commit logic I maked

Но на spring batch не работает должным образом.

1. some update query and event publish by ApplicationEventPublisher, and after commit logic
2. some update query and event publish by ApplicationEventPublisher, and after commit logic
3. some update query and event publish by ApplicationEventPublisher, and after commit logic
3. commit

Я сомневаюсь, @TransactionalEventListener или ApplicationEventPublisher не работает на пакетной пружине ,

Есть ли разница в контексте пружины между springboot и spring batch ??

Или для @TransactionalEventListener, Есть ли какая-либо настройка на spring batch ??

1 Ответ

1 голос
/ 02 апреля 2020
  1. некоторые запросы на обновление и публикации публикуются sh ApplicationEventPublisher

Spring Batch не перехватывает эти события. Вам нужно, чтобы ваш слушатель участвовал в одном из событий жизненного цикла шага (до / после чтения, до / после записи и т. Д. c)

Я хочу обработать что-то после коммита в весеннем пакете.

Для этого можно использовать ChunkListener#afterChunk, который вызывается после совершения транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...