[Spring Batch] Step 간 상태 유지

19·2023년 6월 4일
0

Spring

목록 보기
24/29

배경

Tasklet으로 스프링 배치를 사용할 일이 있었다.
하나의 Step에 로직을 전부 넣자니 복잡해지고, 분리에 필요성을 느껴서 분리하기로 했다.
근데 분리를 하면, 데이터를 다음 Step에 넘겨줄 수 있어야 했다.

.start(1번_Step())
.next(2번_Step())
  • 2번이 실질적인 로직이고, 1번은 2번을 하기 위한 데이터를 마련?하는 로직이다.
  • 1번에서 데이터를 세팅하고 2번으로 넘겨주고 싶었다.

내가 한 방법

ExecutionContext stepExecutionContext = chunkContext.getStepContext().getStepExecution().getJobExecution().getExecutionContext();
  • 이렇게 생성한 ExecutionContext 객체에 데이터를 넣어서 상태유지를 할 수 있었다.

ExecutionContext stepExecutionContext = chunkContext.getStepContext().getStepExecution().getJobExecution().getExecutionContext();
stepExecutionContext.put("key", value);
  • 이렇게 데이터를 넣어두고 필요한 곳에서 꺼내서 사용했다.

stepExecutionContext.get("key");
  • 꺼내는 건 이렇게
profile
하나씩 차근차근

0개의 댓글