본문 바로가기

Spring Batch

ExecutionContext 란?

1. 기본 개념

  • 프레임워크에서 유지 및 관리하는 키/값으로 된 컬렉션으로 StepExecution 또는 JobExecution 객체의 상태(state)를 저장하는 공유 객체
  • DB 에 직렬화 한 값으로 저장됨 - { “key” : “value”}
  • 공유 범위
    • Step 범위 – 각 Step 의 StepExecution 에 저장되며 Step 간 서로 공유 안됨
    • Job 범위 – 각 Job의 JobExecution 에 저장되며 Job 간 서로 공유 안되며 해당 Job의 Step 간 서로 공유됨
  • Job 재 시작시 이미 처리한 Row 데이터는 건너뛰고 이후로 수행하도록 할 때 상태 정보를 활용한다

2. 실습

https://github.com/Woody-log/spring-batch-practice/tree/chapter02/executionContext

 

첫 번째 실행에서 RuntimeExcepcetion 이 발생하지만 BATCH_JOB_EXECUTION_CONTEXT 테이블엔 해당 값이 저장된걸 확인할 수 있다. 두 번째 실행에선 테이블에 데이터를 불러왔기 때문에 조건문이 실행되지 않고 정상적으로 실행된다.

'Spring Batch' 카테고리의 다른 글

JobRepository 란?  (0) 2022.03.05
StepContribution 이란?  (0) 2022.03.05
StepExecution 이란?  (0) 2022.03.05
Step 이란?  (0) 2022.03.01
JobExecution 이란?  (0) 2022.03.01