[Spring Batch] 용어 정리

dev-log·2021년 11월 19일
0

Spring Batch

목록 보기
6/7

Spring Batch 용어 정리

JobLauncher

  • JobLauncher는 Job과 JobParameters를 사용하여 Job을 실행하는 객체이다.

step

  • Step은 실질적인 배치 처리를 정의하고 제어하는 데 필요한 모든 정보가 들어 있는 도메인 객체이다.

  • Job을 처리하는 실질적인 단위

  • 모든 Job은 1개 이상의 Step을 가진다.

JobRepository

  • JobRepository는 배치 처리 정보를 담고 있는 메커니즘이다.
    어떤 Job이 실행되었으며 몇 번 실행되었고 언제 끝났는지 등 배치 처리에 대한 메타데이터를 저장한다.

  • 예: Job 하나가 실행되면 JobRepository에서는 배치 실행에 관련된 정보를 담고 있는 도메인인 JobExecution을 생성한다.

  • JobRepository는 StepExecution도 저장소에 저장하며 전체 메타데이터를 저장/관리하는 역할을 수행한다.

Job

  • 배치 처리 과정을 하나의 단위로 만들어 표현한 객체

  • 하나의 job 안에는 여러 step이 있다. 각 step을 배치의 기본 흐름대로 구현하다.

  • Job 객체를 만드는 빌더는 여러 개 있다. 여러 빌더를 통합 처리하는 공장인 JobBuilderFactory로 원하는 Job을 쉽게 만들 수 있다.

  • Job은 Step 또는 Flow 인스턴스의 컨테이너 역할을 하기 때문에 생성하기 전에 인스턴스를 전달받는다.

JobInstance

  • JobInstance는 배치에서 Job이 실행될 때 하나의 Job 실행 단위이다.

  • 논리적으로 Job을 실행한다.

  • JobParameters를 이용해 구분

  • 하루에 한 번씩 배치의 Job이 실행된다면, 각각의 Job을 JobInstance라고 부를 수 있다.
    오늘 Job을 실행했는데 실패했다면 다음날 동일한 JobInstance를 가지고 다시 실행하게 된다.
    Job 실행이 실패하면 JobInstance가 끝난 것으로 간주하지 않기 때문이다.
    그러면, 이 하나의 JobInstance는 어제 실패한 JobExecution과 오늘의 성공한 JobExecution 두 개를 가지게 된다.

즉, 하나의 JobInstance는 여러 개의 JobExecution을 가지게 된다.

JobExecution

  • JobExecution은 JobInstance에 대한 실행 시도에 대한 객체

  • 1월 1일에 실행한 JobInstacne가 실패하여 재실행을 하여도 동일한 JobInstance를 실행시키지만 이 2번에 실행에 대한 JobExecution은 개별로 생기게 됩니다. JobExecution는 이러한 JobInstance 실행에 대한 상태,시작시간, 종료시간, 생성시간 등의 정보를 담고 있다.

JobBuilderFactory 클래스

  • JobBuilderFactory 클래스의 get() 메서드로 JobBuilder를 생성할 수 있다.
    -JobBuilder get(String name);
  • 이렇게 생성된 JobBuilder로 Job을 생성한다.

JobBuilder의 메서드

  • SimpleJobBuilder start(Step step);
    Step을 추가해서 가장 기본이 되는 SimpleJobBuilder를 생성

  • JobFlowBuilder start(Flow flow);
    Flow를 실행할 JobFlowBuilder를 생성

  • JobFlowBuilder flow(Step step);
    Step을 실행할 JobFlowBuilder를 생성

JobParameters

  • JobInstance는 Job의 실행 단위이다. JobParameters 객체로 JobInstance를 구별한다. JobParameters는 JobInstance 구별 외에도 개발자 JobInstacne에 전달되는 매개변수 역할도 하고 있다.

  • JobParameters는 String, Double, Long, Date 4가지 형식을 지원한다.

Reference

https://jojoldu.tistory.com/325?category=902551
https://minholee93.tistory.com/entry/Spring-Batch-Batch-Job?category=924031
https://hororolol.tistory.com/513

profile
배운 걸 기록하는 곳입니다.

0개의 댓글