처리할 데이터를 일정단위(청크)로 처리하는 방식
ChunkOrientedTasklet
은 청크 처리를 지원하는 Tasklet의 구체적인 클래스 역할을 수행
청크에 포함될 데이터의 최대 레코드 수(청크 size)는 commit-interval이라는 설정값을 이용하여 조정한다.
ItemReader
, ItemProcessor
, ItemWriter
는 청크 단위를 처리하기 위한 인터페이스
ChunkOrientedTasklet은 ItemReader, ItemProcessor, ItemWriter 구현체를 각각 호출한다.
이때 청크 단위에 따라 reader, processor, writer를 반복 실행한다.
청크 크기만큼 ItemReader가 데이터를 읽어 들이면 청크 단위를 ItemProcessor로 전달하고, 데이터를 처리한다.
처리하고 난 청크 단위가 ItemWriter로 전달되어 데이터를 저장하거나, 파일처리를 수행한다.
public class MyItemProcessor implements ItemProcessor<MyInputObject, MyOutputObject> {
@Override
public MyOutputObject process(MyInputObject item) throws Exception {
MyOutputObject processedObject = new MyOutputObject();
//들어온 데이터를 처리하는 비즈니스 로직
return processedObject;
}
}
processedObject
→ 처리 결과로 반환할 출력 객체