uju's Tech

[Batch:Jobexecution]동적으로 JobName, StepName 가져오기 본문

Spring/Batch

[Batch:Jobexecution]동적으로 JobName, StepName 가져오기

ujusy 2020. 6. 13. 03:44

<본 포스팅은 공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>

 

 

개발 중에 기존에 static final로 선언해두었던 JobName과 StepName 변수를 

동적으로 할당하고 싶은 경우가 발생하였다.

 

다른 서비스에서도 해당 클래스를 활용할 수 있도록 확장성을 높이기 위해

static final로 지정되어있던 것을 들어오는 파라미터에 따라서

동적으로 사용해 줄 수 있도록 개발하고 싶었다. 


 

일단 개발하고 있는 것이 Batch라는 것을 생각해본다면

우리는 Job을 가지고있고 그에 따른

JobExecution 또한 가지고있다. 

 

JobExecution은 많은 정보를 담고있다. 

 

JobInstance, 배치 실행 상태, 시작 시간등 다양한 정보등을 담고있습니다.

 

JobInstance를 보면 jobname 정보를 담고있음을 확인할 수 있다.

 

그렇다면 StepName은 어떻게 알 수 있을 까?

 

JobExecution안에 set Execution에 접근할 수 있는 getStepExecution이 존재한다. 

 

이를 이용하여 StepName을 가져올 수 있다.

 

정리를 해보면

 

JobExecution jobexecution;
String JOB_NAME = jobexecution.getJobInastance.getJobName();
String STEP_NAME = jobexecution.getStepExecutions().iterator().next().getStepName();

    위와 같이 지정해 줄 수 있다

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

[Batch]Batch가 뭘까 ?  (0) 2020.06.13
Comments