DevBoi

[Spring Batch] Tasklet vs Chunks 차이 본문

Develop/[Spring Batch]

[Spring Batch] Tasklet vs Chunks 차이

HiSmith 2022. 4. 11. 12:59
반응형

Tasklet은 단계 내에서 단일 테스크를 수행하기 위함입니다.

각 단계는 하나의 정의된 작업만 수행한다.

 

ex.

Csv파일에서 행을 읽고, 사람들의 나이를 계산해서, 새로운 파일로 쓰는 배치작업이 있다고 하자

 

 

이런식으로 각각의 모듈별로 다 Tasklet을 구현하고, 안에 execute 메소드를 오버라이드 해야한다.

 

Tasklet은 단순하게 처리할 수 있는 장점이 있지만, 대용량을 감당하기엔 부하를 감당할 수 없다.

따라서 Chunk를 통해서 쪼개서 넣을 필요가 있는데 Tasklet으로도 쪼개서 넣을수 있지만 가독성이 많이 떨어진다.

 

Tasklet을 사용한 Task 기반처리

-배치 처리 과정이 비교적 쉬운 경우 쉽게 사용

-대량 처리를 하는 경우 복잡

-하나의 큰 덩어리를 여러 덩어리로 나누어 처리하기 부적합하다.

 

Chunk기반처리

-ItemReader,ItemProcessor,ItemWriter 관계를 이해하고, 대량 처리를 Tasklet보다 쉽게 구현가능하다.

(Step 에서, ChunkSize기준으로 reader,processor,writer를 설정하면, 덩어리 별로 잘라서 처리해준다.)

 

반응형