inflearn logo
강의

Course

Instructor

The Death of Spring Batch: The Harrowing Horror at 3 a.m. Is Finally Over.

Chapter 5. Operation 1: Job Squad Takeover Operation — Job and Metadata Repository (Seizing the Heart of the Batch 🏴‍☠️)

RunIdIncrementer batch 5랑 6랑

30

pius712

56 asked

1

이거 6버전으로 읽고 있다가 문득 이상해서 질문남긴다.

RunIdIncrementer <- 이거 지금 5랑 6랑 동작.. 완전 다른거 같은데 맞냐..?


(완전 다르다기 보다, 스프링 배치 리드의 이슈에서는 너네가 잘못 쓰고 있던거다 라고 하긴하던데)

전에는 같은 파라미터로 재시작할때도 사용가능했는데, 이제는 이거 안바꾸고 버전업하면


"하위고과" 확정이다.

java spring spring-boot spring-batch backend

Answer 2

1

KILL-9

너의 말이 맞다 💀

배치6을 사용한다면 배치6 강의 내용을 기준으로 사용하길 바란다.

강의 내용에서 설명한 방법 그대로 사용하면 된다

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

비오님, 질문하신 것처럼 Spring Batch 5와 6에서 RunIdIncrementer를 사용하는 의미와 동작이 달라진 부분이 맞습니다.

기존 Spring Batch 5에서는 업무 파라미터가 있는 잡에 RunIdIncrementer를 함께 사용해, 동일한 업무 파라미터라도 run.id를 증가시켜 새로운 JobInstance로 실행하는 방식이 사실상 활용되기도 했습니다. 다만 이 방식은 동일한 파라미터로 재시작(restart) 해야 하는 경우에는 적합하지 않은 일종의 우회 방식이었습니다.

Spring Batch 6에서는 관련 변경으로 인해 RunIdIncrementer를 사용할 때 다른 파라미터가 무시되는 방향으로 변경되었습니다. 따라서 다음과 같이 이해하시면 됩니다.

  • 재시작이 중요한 배치: 업무적으로 의미 있는 파라미터만 사용하고 RunIdIncrementer는 사용하지 않는 것이 적절합니다.
  • 매 실행마다 새로운 인스턴스로 실행하고 싶은 배치: RunIdIncrementer를 사용할 수 있지만, 실패 지점부터 이어서 재시작하는 용도와는 맞지 않습니다.
  • 업무 파라미터가 없는 반복 실행 배치: Batch 5에서는 run.id가 불필요한 경우도 있었으며, Batch 6에서는 변경된 동작을 고려해 버전별 설정을 확인해야 합니다.

관련된 지식공유자님의 답변은 아래 질문에서 확인하실 수 있습니다.

JobParametersIncrementer와 Spring Batch 5·6의 동작 차이

또한 해당 변경의 배경이 된 Spring Batch 이슈도 함께 참고해 보시면 좋습니다.

핵심은 RunIdIncrementer를 단순히 “매번 새로 실행하기 위한 값”으로 사용할지, 아니면 실패한 동일 작업을 “재시작하기 위한 파라미터”로 사용할지를 구분하는 것입니다. Batch 6으로 업그레이드할 때 기존에 run.id를 이용해 재실행하던 구조가 있다면, 잡의 재시작 정책과 식별 파라미터를 다시 검토해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

강의 자료를 받아볼 순 없겠나

1

43

2

PlatformTransactionManager, ResourcelessTransactionManager 질문

1

95

2

형 책 어떻게 받아?

1

125

1

JpaCursorItemReader의 정렬 조건 부재의 영향

1

100

2

"컴파일 시점에 없는 값을 어떻게 참조할 것인가?" 섹션

1

105

2

형 이번에 낸 책이랑 강의 내용에 차이가 있어?

2

153

1

형 나 몰래 책내면 모를 줄 알고?

2

135

2

강의 중복 확인 요청

1

73

1

중복내용 제보?!

1

120

2

Json 요청 처리

1

116

2

[건의][6장][작전1] deprecated 메소드

1

131

2

[예제][3장][작전2] windows 에서 마지막 예제

1

117

2

[오타][3장][작전1] 형 이건 빨리 해줘

2

215

2

[오타] "리스너 활용: 시스템 완전 장악 매뉴얼" 부분

1

104

1

[오타] "JobScope와 StepScope 사용 시 주의사항" 부분

1

116

2

spring boot 4 + spring batch 6 설정 변경?

1

230

2

Batch 패키지 설계 — 실무에서 Job 단위 구조

1

182

2

Spring batch를 실행해줄 스케줄러와 batch 실행 환경

1

142

1

메타테이블에 데이터가 생기지 않는 이유

1

196

2

Spring Batch 4.3.10 ExecutionContext 한글 인코딩 이슈 관련 문의

1

185

2

@StepScope 또는 @JobScope와 JobOperator

1

212

5

Remote Partitioning

1

148

2

킬구형 실무에서는 JPA ItemReader / ItemWriter를 더 선호해? 아니면 JDBC itemReader/ItemWriter를 더 선호해?

1

190

2

병렬 중첩

1

154

3