작성
·
371
0
Chunk Process 아키텍처 챕터를 보고 있는데요.
아키텍처 그림에서 ItemReader가 읽은 item이 null 일 경우,
모든 반복문 및 Chunk 프로세스를 종료한다고 되어 있는데
ItemProcessor, ItemWriter 처리 이후에 Chunk 프로세스가 종료되는게 맞지 않나요?( 설명만 봐서는 read에서 null 리턴시 바로 Step이 종료되는 것 처럼 이해가 됩니다. )
예를 들어 11개의 아이템이 있고 Chunk 사이즈가 5이면,
Chunk가 총 3개로 처리가 되고, 각 Chunk의 사이즈는 5, 5, 1 로 3번의 트랜잭션 처리가 처리되고 난 뒤에 Chunk 프로세스가 종료가 되니까요.
답변 1
1
네
말씀하신 것 처럼 ItemReader 에서 읽어온 데이터는 모두 처리가 된 이후에 프로세스가 종료됩니다
근데 잘 생각해 보면 ItemReader 가 null 이라는 것은 ItemProcessor 와 ItemWriter 의 과정이 모두 끝난 다음에 나올수 있는 값입니다
ItemReader 가 null 을 리턴한다는 것은 더 이상 처리해야할 데이터가 없다는 것을 전제로 하는 것입니다
ItemProcessor 와 ItemWriter 가 ItemReader 로부터 소스를 받아 처리하고 세개의 클래스는 순서대로 흘러가기 때문에 ItemProcessor 와 ItemWriter 가 처리하는 도중에 ItemReader 가 단독으로 작업을 진행할 수 없습니다
즉 ItemReader 는 항상 작업의 맨처음 시작이기 때문에 시작부터 null 이 나온다면 더 이상 이후의 과정은 진행되지 않음을 의미한다고 이해하시면 될 것 같습니다