inflearn logo
강의

Khóa học

Chia sẻ kiến thức

đợt xuân

SimpleJob - incrementer()

Job을 여러번 실행할 때

967

ghkvud22405

8 câu hỏi đã được viết

0

해당 강의에서 같은 파라미터로 job을 여러번 실행하기 위해 incrementer() API를 알려주셨는데요. 의문이 있습니다.

실제 업무 환경에서는 똑같은 파라미터로 계속해서 실행할 경우가 있습니다.

 

예를 들어 하루에 1시간 단위로 실행되어야 하는 job은  파라미터로 2022-01-01 과 같이 날짜 파라미터를 받아 실행하는 경우가 있는데요. 이때 같은 파라미터로 똑같은 job을 실행할 수 없으니 incrementer() 를 사용하면 해결될 것 같긴 한데, 만약 스프링 배치 어플리케이션이 재기동이 될 경우 id 값이 0으로 초기화 되는 문제가 발생합니다.

즉, 날짜 파라미터는 2022-01-01로 동일한데, incrementer()를 통해 1~10까지 수행했다가, 어플리케이션이 재시작되게 되면 incrementer()를 통해 다시 1부터 수행하기 때문에 같은 job을 실행할 수 없는 상황이 올 것 같습니다.

이런 문제는 어떻게 해결하나요..? incrementer()가 순차적으로 증가하는 값이 아니라 랜덤 값 같은 걸 반환하도록 해야할까요? 근데 이러한 방식도 중복을 100% 방지할 수는 없다고 생각합니다.

스프링 배치에서 지원하는 API가 따로 있나요? 강의 뒷 부분에 나오는지 궁금하네요.

spring-batch spring-boot

Câu trả lời 2

2

jjunhwan

스프링 배치 어플리케이션이 재기동 되어도 id값이 0으로 초기화되는게 아니라 DB에서 마지막 run.id 값을 가져와서 +1 해서 사용하니까 상관없이 항상 잘 실행되는것 아닌가요?? (RunIdIncrementer 구현체 기준으로 말씀드린겁니다)

1

leaven

네.

그건 increment 의 값이 유일한 값이면 되기 때문에 1 씩 증가하는 것으로 구현하지 말고 실행당시의 시간을 밀리세컨드로 생성해서 jobparameter 로 전달하면 됩니다.

그러면 재 기동하더라도 항상 다른 값으로 전달이 가능할 것 같습니다.

스프링 배치 버전 질문

0

123

1

소스코드가 어디에 있나요?

0

96

2

트랜잭션 예외

0

92

1

질문이 있습니다.

0

130

2

ChunkListener 에서 beforeChunk 의 실행 시점 관련 질문

0

125

2

여러 JOB 설정하는법

0

151

2

강의 자료 다른 방법 있을까요?

0

155

1

JobExecution과 JobExecutionContext와의 관계

0

186

2

특정 job만 실행

1

252

1

Batch 성능 질문

0

153

1

ItemReaderAdapter 종료

0

80

1

[ 강좌 Git 브랜치 문의 ] 섹션 9 > JdbcCursorItemReader, JpaCursorItemReader

0

179

2

Spring Batch 배포 질문

0

246

2

spring batch 버전

0

236

2

retry count 관련 질문

0

172

2

StepExecutionListener 의 afterStep 에서 return ExitStatus.FAILED 에 의한 동작에 의문이 갑니다.

0

330

2

jdbc, jpa 커서방식 조회 방식 차이 질문 (강사님께 답변 받고 싶습니다)

0

235

2

Multithread step과 AsyncItemProcessor

0

203

2

job 재실행

0

251

2

bean 생명주기 문제 도와주세요(@Scope("step"), @Autowired)

0

183

1

Multi-threaded-step과 Partitioning 차이 확인

0

175

2

jdbcCursorReader, jdbcPagingReader 질문

0

146

1

step muti-thread 질문

0

111

1

itemSteam open update close 질문

0

112

1