반응형
Tasklet이란
간단한 단위의 작업을 수행하는 Batch Step을 정의할 때 사용하는 인터페이스입니다,.
Step은 보통 Tasklet, Chunk 단위로 작업을 처리합니다.
- Tasklet은 하나의 작업 단위를 처리하는 인터페이스
- 배치 작업에서 독립적이고 작은 단위의 작업을 정의하는데 사용합니다.
Tasklet Interface 구조
execute() 단일 메서드를 가지고 있습니다.
public interface Tasklet {
RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception;
}
매개변수 : StepContribution, ChunkContext
반환값 : RepeatStatus
- RepeatStatus.FINISHED: 작업이 완료되었음
- RepeatStatus.CONTINUABLE: 작업이 계속되어야 함
StepContribution: Step 실행 상태 관리
현재 실행 중인 Step의 실행 상태를 추적합니다.
해당 Step 작업에서 처리된 데이터의 양, 성공/실패 여부 등의 통계 정보를 가지고 있습니다.
이를 통해 배치 실행의 통계 정보를 수집하고, 최종 Job의 성공 여부를 결정합니다.
ChunkContext: Chunk 실행 정보 관리
현재 실행 중인 Chunk에 대한 Context 정보를 담고 있는 객체이다.
Chunk 기반 처리를 할 때, 여러 개의 아이템을 하나의 Chunk 단위로 묶어서 처리하는데, ChunkContext는 이러한 Chunk 단위의 처리 상황을 포함합니다.
StepContext
chunkContext.getStepContext() 는 현재 Chunk와 관련된 Step의 Context를 가져오는 메서드입니다.
현재 실행 중인 Step에 대한 정보를 제공하는 객체(StepContext)를 반환합니다.
해당 객체에 사용된 JobParameter, Step Status, 실행 횟수 등에 접근할 수 있습니다.
반응형
'Spring Framework > Spring' 카테고리의 다른 글
Spring AOP 개념 정리 및 Aspect 적용 방법 - annotation 활용 (1) | 2024.10.10 |
---|---|
[Spring] 스프링 FactoryBean 이해하기 - Custom Bean 생성방법 (2) | 2024.10.09 |
[Spring] MessageSource, messages_en.properties 파일에서 작은 따옴표 및 특수 문자 처리 오류 해결 방법 (2) | 2024.10.03 |
[Spring] Spring으로 HTML 파일 PDF 변환, 다운로드하기 - 한글 깨짐 문제, Thymeleaf, PDF 변환 해결 (0) | 2024.07.30 |
[Spring] 스프링 reactive-stream, 비동기 통신 이해하기 (0) | 2024.06.23 |