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로 하는 것이 좋습니다.
운영에는 스크립트를 직접 생성해서 관리하는 것을 추천합니다.
'Spring|Spring-boot > Spring Batch' 카테고리의 다른 글
Spring Batch Parameter (0) | 2021.02.28 |
---|---|
Spring Batch Architecture (0) | 2021.02.27 |
Spring Batch step 작성해보기 (0) | 2021.02.27 |
Batch Hello World (0) | 2021.02.27 |
Spring Batch (0) | 2021.02.27 |
댓글