Spring Batch 5 - 4. Task 기반 step, Chunk 기반 step

2023. 10. 22. 02:29· Spring/Spring Batch
목차
  1. 1. Task 기반 step
  2. 2. Chunk 기반 step
반응형

이전 게시글

https://wn1331.tistory.com/254

 

Spring Batch 5 - 3. Step 개요

이전 게시글 : https://wn1331.tistory.com/253 Spring Batch 5 - 2. Batch 설정하기, Job 이전 포스팅에서 했던 프로젝트에서 추가로 Batch 설정을 추가한다. 1. Spring Batch MetaData란? 메타데이터 테이블은 Spring Batch

wn1331.tistory.com

 

1. Task 기반 step

task 기반 step은 단순한 배치 처리에 이용되는 step이다. 

대량 처리를 하는 경우에 task기반으로 step을 구현하면 코드가 매우 복잡해진다.

 

Spring batch 5 버전에서의 task기반 step을 사용해 보자.

    @Bean
    @JobScope
    public Step step1() {
        return new StepBuilder("exampleStep1", jobRepository)
                .tasklet((contribution, chunkContext) -> {
                    System.out.println("hello step1");
                    return RepeatStatus.FINISHED;
                }, platformTransactionManager)
                .build();
    }

위처럼 작성하면 되는데, 스프링배치5 이전 버전에서 사용했던 것보다 뭔가 더 복잡해진 거 같은 기분이 든다.

 

2. Chunk 기반 step

chunk기반 step은 대량 처리를 위한 step이다. task기반 step보다 많은 구현이 필요하며, chunk로 나누어 데이터를 처리한다.

ItemReader, ItemProcessor, ItemWriter로 구성되어 있으며, ItemProcessor는 생략이 가능하다.

 

Reader, Processor, Writer에 대한 설명은 각각 포스팅하여 다루어 볼 예정이다.

간단한 Chunk기반 Step을 한번 구현해 보자.

일정 개수(size)만큼 읽어들여 그만큼의 출력문을 처리하는 예시 코드이다.

ItemReader, ItemProcessor, ItemWriter를 사용화지 않고, 직접 reader, processor, writer를 구현한 코드이다. 

(실제로 데이터를 처리할 때 위처럼 하면 안된다. )

size의 초기값은 0이고, 0,1,2.....9까지 10개의 item이 한개의 chunk로 수행된다. 그리고 10의 item은 2번쨰 chunk로 실행.

결국 2개의 chunk로 step이 수행된다. read가 10번 실행하고, item들이 processor로 넘어가 출력이 된다.

그리고 processor에서 return 한 item들이 writer로 가서 하나의 chunk를 배열로 가지는데, 그것을 출력한 것.

두번째 chunk에서는 10 하나의 item만 들어있어서 아래와 같이 출력되었다. 

 

 

아래는 출력 화면

 

앞으로의 포스팅들은 전부 Chunk 기반 Step에 관한 글이 될 것이다. ItemReader / ItemProcessor / ItemWriter에 관한 포스팅을 전부 해볼 생각.

 

반응형

'Spring > Spring Batch' 카테고리의 다른 글

Spring Batch 5 - 5. ItemReader  (0) 2023.10.22
Spring Batch 5 - 3. Step 개요  (0) 2023.10.20
Spring Batch 5 - 2. Batch 설정하기, Job  (1) 2023.10.20
Spring Batch 5 - 1. 시작하기  (0) 2023.10.20
  1. 1. Task 기반 step
  2. 2. Chunk 기반 step
'Spring/Spring Batch' 카테고리의 다른 글
  • Spring Batch 5 - 5. ItemReader
  • Spring Batch 5 - 3. Step 개요
  • Spring Batch 5 - 2. Batch 설정하기, Job
  • Spring Batch 5 - 1. 시작하기
wn1331
wn1331
반응형
wn1331
JONGHUN
wn1331
전체
오늘
어제
  • 분류 전체보기 (268)
    • Spring (16)
      • Spring Data JPA (0)
      • Spring Security (11)
      • Spring Batch (5)
    • DEV (40)
      • FrontEnd (2)
      • JAVA (5)
      • Git (1)
      • 기타 (6)
      • Network (1)
      • MSA (12)
      • 개발일기 || 트러블슈팅 (5)
      • 행사 || 후기 (3)
      • GraphQL (3)
      • Kotlin (0)
      • Database (2)
    • 코딩테스트 (164)
      • Programmers_LV0 (100)
      • Programmers_LV1 (54)
      • 백준 (8)
      • Algorithm (1)
    • 교육 | 외부활동 (44)
      • 이론_JAVA (13)
      • ORACLE (12)
      • PUBLISHING (6)
      • JAVASCRIPT (5)
      • JQuery (0)
      • 항해99 플러스 백엔드 (8)
    • 기본지식 (0)
    • 끄적끄적 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 학부생(용인대학교 컴퓨터과학과 1~4학년) 네이버 블로그는⋯

인기 글

태그

  • 압축
  • 항플
  • Spring
  • 세션
  • MySQL
  • 스프링 시큐리티
  • Spring Boot
  • 항플 백엔드
  • SESSION
  • 스프링
  • spring security
  • transaction
  • JPA
  • 항해99
  • MSA
  • 스프링 부트
  • Spring Batch
  • 항해플러스
  • Step
  • java

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
wn1331
Spring Batch 5 - 4. Task 기반 step, Chunk 기반 step
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.