inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 배치

ItemStream

ItemStreamReader 중복실행관련 질문

244

홍찬희

작성한 질문수 1

0

저는 강의를 들으면서, 6번째에서 실패하면 6,7,8,9 이렇게 잡을 실행한다고 이해했는데

 

아래 코드와 같이 this.index == 7로 바꿨을때 6부터 시작하는게 아닌 5부터 시작하는데 의도한 설명이 맞을까요??

    @Override
    public String read() {
        String item = null;
        if (this.index < this.items.size()) {
            System.out.println("read = " + index);
            item = this.items.get(index++);
        }

        if (this.index == 7 && !restart) {
            throw new RuntimeException("Restart is required!");
        }
        return item;
    }

// 1번째 실행
open
update
read = 0
read = 1
read = 2
read = 3
read = 4

update
read = 5
read = 6
Exception : Restart is required!

// 2번째 실행
open
update
read = 5
read = 6
read = 7
read = 8
read = 9

update
update

가장 최근에 실패한 지점부터 시작한다고 언급해주셨는데, 가장 최근에 실패한 Chunk부터 시작하는 것 같아서 원래 강사님께서 말씀하시려던 부분이 가장 최근에 실패한 Chunk부터 재실행 한다는게 맞을까요??

맞다면, 중복실행이 될 수 있겠네요

 

read( ) 메서드에서는 ExecutionContext에 put을 하고 있는게 아니라서 클래스 내부변수 this.index가 변경되더라도 실제 DB에는 적용되지 않는 것 같네요.

spring-boot spring-batch

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 홍찬희님의 질문에 대해 명확한 답변을 드리기 위해선 질문하신 내용과 직접 관련된 정보가 제공된 문서가 필요합니다. 하지만 제공해주신 정보에는 ItemStreamReader의 중복 실행과 관련된 구체적 내용이 포함되어 있지 않습니다. 스프링 배치와 관련된 질문은 스프링 공식 문서 또는 스프링 배치 관련 공식 문서에서 더 자세한 정보를 찾을 수 있으니, 해당 자료를 참고해보시는 것도 좋을 것 같습니다.

스프링 배치의 특정 구현체나 부분에서 예상치 못한 동작이 발생할 때는 해당 구현의 내부 로직을 자세히 살펴보고, 필요하다면 스프링 배치의 공식 문서나 해당 기능에 관련된 커뮤니티의 질문과 답변을 찾아보는 것이 해결책을 찾는 데 도움이 될 수 있습니다. 또한, 실패 지점에서 재시작하는 로직에 대하여는 스프링 배치가 제공하는 ExecutionContext를 통해 상태 관리를 하는 것이 중요하므로, ExecutionContext에 상태 정보를 저장하고 관리하는 방법에 대해서도 살펴보시기 바랍니다.

직접적으로 도움을 드리지 못해 죄송합니다. 추가적인 질문이 있으시면 언제든지 문의해주세요.

스프링 배치 버전 질문

0

122

1

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

0

96

2

트랜잭션 예외

0

92

1

질문이 있습니다.

0

130

2

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

0

125

2

여러 JOB 설정하는법

0

150

2

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

0

154

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

245

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

110

1

itemSteam open update close 질문

0

112

1