티스토리 뷰
spring batch 를 이용하면 JobBuilderFactory, StepBuilderFactory 를 이용해 코드를 작성하게 된다. 이때 factory 가 제공해주는 다양한 속성들이 있는데, 나같은 경우 자동완성으로 뜨긴뜨는데 뭐하는건지 명확히 모르고 그냥 사용하던 것만 사용하고 있었다. 이것들을 한번 정리해본다.
preventRestart
spring batch 는 job name 과 job parameters 를 이용해 job 인스턴스를 식별한다. job 이 실패했을경우 동일한 식별정보로 job 실행요청이 들어오면 실패한 step 부터 job 을 실행하게되는데 preventRestart 가 설정되어있으면 예외를 일으켜 잡이 다시 실행되는걸 막는다.
allowStartIfComplete
A job 에 a, b, c step 이 있다고 가정했을때 첫번째 A 실행시 a, b 가 성공하고 c 가 실패했다고 하자. 두번째 A 가 실행되면 성공했던 a, b 는 넘어가고 c step 만 실행하게되는데 이때 b step 에 해당 속성이 true 로 설정되어있으면 b 는 이미 성공한 이력이 있음에도 실행되게된다. 이 시나리오에서는 a 만 건너뛰고 b, c 가 실행되게된다. 참고로 동일한 상황에서 a 만 해당 속성이 true 로 되어있으면 두번째 실행시 중간에 있는 b 만 건너뛰고 a, c 가 실행되게 된다.
startLimit
재시작 가능한 횟수. 실패-재시도 상황에서 특정 step 이 이 설정을 초과하여 실행하게되면 예외를 발생시킨다.
faultTolerant
내결함성 설정 가능한 빌더를 반환한다.
아래에서 추가로 설명할 skip, skipLimit, noSkip, retry, retryLimit, noRollback 속성을 설정할 수 있다.
skip
step 실행 중 예외가 발생해도 step 을 실행시키지 않을 class 를 받는다.
skipLimit
skip 에서 설정한 예외가 발생해도 넘어갈 횟수를 지정한다. 이 속성을 10으로 설정했는데 skip 에서 설정한 예외가 11번 발생하면 step 은 실패한다.
noSkip
특정 예외를 skip 하도록 하는것보다 Exception 과 같이 모든 예외에 대해 skip 을 해놓고, 특정 예외를 skip 하지않도록 설정하는 블랙리스트방식이 필요할때도 있다. 그때는 noSkip 속성을 이용하면 된다.
retry
retry 에 전달된 예외가 발생한 경우엔 해당 step 을 retry 한다. retry 로 인해 성공하면 해당 step 은 성공이다.
retryLimit
retry 시도할 횟수를 설정한다.
noRollback
chunk oriented process 에서 결국 롤백 대상은 writer 가 된다. noRollback 에 exception 타입을 전달하면 해당 예외가 발생해도 롤백을 진행하지 않는다.
transactionAttribute
step 별 트랜잭션을 설정한다.
'Java > batch' 카테고리의 다른 글
JdbcPagingItemReader 에서 column not found (0) | 2021.08.28 |
---|---|
spring-batch 에서 TaskExecutor 사용시 jvm 종료 안 되는 현상 (1) | 2021.05.02 |
JpaItemWriter 이용시 merge 로 인한 select 쿼리 발생 이슈 (4) | 2021.04.25 |
tasklet 에서 @BeforeStep 이 동작하지 않을때 (0) | 2021.01.07 |
Spring batch RunIdIncrementer 사용시 이슈 (0) | 2020.08.21 |
- Total
- Today
- Yesterday
- generics
- mariadb
- clean code
- MySQL
- java
- code
- servlet
- Design Pattern
- JavaScript Core
- spring cloud
- TEST
- 정규표현식
- Spring
- toby
- EffectiveJava
- frontcode
- go-core
- javascript
- db
- Git
- OOP
- http
- java8
- frontend개발환경
- Kotlin
- programming
- backend개발환경
- Jackson
- DesignPattern
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |