티스토리 뷰

Server

Spring Batch Job Repository

니용 2021. 12. 30. 10:22
반응형

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로 하는 것이 좋습니다.

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

 

반응형

'Server' 카테고리의 다른 글

특정 잡만 수행하고 싶을 때  (1) 2022.01.10
Job & Step 병렬 처리 하기  (2) 2022.01.05
[Java] Stream GroupBy 사용하기  (2) 2021.12.30
AWS EC2 Ubuntu GUI 설정  (1) 2021.12.24
DataGrip 에서 SSH 터널링으로 DB 접근하기  (2) 2021.12.22
Ubuntu PPA 저장소 관리  (0) 2021.12.20
댓글
공지사항