Tasklet vs. Chunk

Tasklet

  • 가장 간단한 형태
  • 캡슐화된 커스텀 비즈니스 로직 조각을 실행할
  • 단일 트랜잭션에서 수항핼 수 있는 작업 단위를 나타낸다.

    사례

  • 단일 트랜잭션
  • 비청크 처리
  • 복잡한 로직(작은 세그먼트로 나누기에 애매한)

    장점

  • 단순성
  • 유연성
  • 상세 제어

    단점

  • 메모리 소비
  • 단일 실패 지점

    특성

  • 무상태 : 일반적으로 실행 간에 상태를 유지하지 않으므로 분산환경에서 사용하기 쉽다.
  • 혼합 실행 : 여러 tasklet이 서로 다른 작업에서 독립적으로 실행될 수 있어 병렬 처리를 촉진한다.
  • 재사용 가능 : taskle 로직은 서로 다른 작업에서도 재사용할 수 있어서 코드의 모듈성을 향상시킨다.

    Chunk

  • 데이터를 작은 청크로 처리
  • 양이 많을 때 사용
  • 처리 성능, 메모리 관리를 용이하게

    사례

  • 대량 데이터
  • 트랜잭셔널 무결성
  • 정기적인 데이터 흐름

    장점

  • 효율성
  • 트랜잭셔널
  • 확장성

    단점

  • 복잡성
  • 구성 오버헤드

비교

| 기능 | Tasklet | Chunk | | :—–: | ———————- | —————————- | | 복잡성 | 직관적 | 세 가지 구성 요소가 포함되어 상대적으로 복잡하다. | | 데이터 사이즈 | 소규모에 적합 | 대규모에 적합 | | 메모리 사용량 | 모든 데이터를 한 번에 처리 | 작은 청크만 처리하도록 최적화되어 있음 | | 실패 핸들링 | 전체 작업이 하나의 단위로 실패 | 각 청크는 독립적으로 커밋될 수 있다. | | 확장성 | 메모리에 의해서 제한된다. | 효율적인 흐름으로 높은 확장성이 있다. | | 제어 | 하나의 메소드에 자세한 제어가 가능하다. | 여러 매핑을 처리해야 한다. | | 성능 | 핸들링하는 데이터 수가 많으면 느려진다. | 일반적으로 더 빠르다. |