inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 배치

AsyncItemProcessor / AsyncItemWriter

AsyncItemReader

299

김나다

작성한 질문수 8

0

AsyncItemReader는 없는 이유가 있나요?


읽는거도 비동기처리하면 그만큼 또 메인스레드를 다른용도로 활용할 수 있으니까요

 

spring-boot spring-batch

답변 1

0

정수원

넓은 의미에서 보면 모든 처리를 비동기로 해도 문제 될 것은 없습니다.

다만 배치 입장에서 보면 읽는 행위를 비동기로 하더라도 읽을 동안에 메인 스레드가 다른 처리를 할 만한 것이 딱히 없기도 하고 배치는 청크 단위로 데이터를 읽어오고 커밋 & 롤백구조로 되어 있는데 비동기로 데이터를 읽어오게 되면 완료되었을 때 다시 메인스레드로 Future 방식으로 데이터를 넘기는 부분등 복잡도가 늘어날 수 밖에 없습니다.

어차피 배치는 원 소스 즉 데이터를 읽어오는 것 부터 시작이기 때문에 첫 시작을 동기로 하든 비동기로 하든 그것 자체가 큰 차이가 없지만 프로세스와 쓰기 작업은 데이터를 가공하고 처리하는데 오래 걸리는 작업들을 비동기로 하는것은 동기로 하는 것과 명확한 차이가 있기 때문에 그런것이 아닐까 하는 생각입니다.

어디까지 메인스레드와 비동기 스레드로 구분할 것인지 결정은 효율적인 측면을 최대한 고려해서 설계하는 것이 중요하므로 스프링 배치 개발팀이 나름대로 정한 기준인것 같습니다.

스프링 배치 버전 질문

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

111

1

itemSteam open update close 질문

0

112

1