Spring|Spring-boot/Spring Batch

Spring Batch Job Repository

oncerun 2021. 2. 27. 19:59
반응형

Job Repository는 스프링 배치에 대한 메타 데이터를 저장합니다.

 

그 구조는 spring-batch-core에 존재합니다.

mysql을 사용하므로 mysql.sql을 복사해 생성해보겠습니다.

 

다음과 같이 여러 테이블이 생성되었습니다.

 

테이블마다 역할은 다음과 같습니다.

 

BATCH_JOB_INSTACE 

 - job이 실행되며 생성되는 최상위 계층의 테이블입니다

 - job_name과 job_key를 기준으로 하나의 row가 생성되며, 같은 name, key는 저장될 수 없습니다.

 - job_key는 BATCH_JOB_EXECUTION_PARAMS에 저장되는 Parameter를 나열해 암호화해 저장합니다.

 - JobInstace클래스와 매핑 됩니다.

 

BATCH_JOB_EXECTION

 - job이 실행되는 동안 시작/종료 시간, job 상태 등을 관리합니다.

 - JobExecution 클래스와 매핑 됩니다.

 

BATCH_JOB_EXECUTION_PARAMS

 - job을 실행하기 위해 주입된 parameter 정보 저장

 - JobParameters 클래스와 매핑 됩니다.

 

BATCH_JOB_EXECUTION_CONTEXT

 - job이 실행되며 공유해야 할 데이터를 직렬 화해 저장

 - ExecutionContext 클래스와 매핑 됩니다.

BATCH_STEP_EXECUTION

 - Step이 실행되는 동안 필요한 데이터 또는 실행된 결과 저장

 

BATCH_STEP_EXECUTION_CONTEXT

 - Step이 실행되며 공유해야할 데이터를 직렬화해 저장

 

 

 

 

이제 yml설정을 해줍니다. 해당 스크립트를 언제 실행할지 정합니다.

운영조건에서는 never 개발환경에서는 embedded, always로 하는 것이 좋습니다.

운영에는 스크립트를 직접 생성해서 관리하는 것을 추천합니다.

 

 

반응형