• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

문의 드립니다.

21.10.30 18:20 작성 조회수 189

0

안녕하세요. 강사님, 수강생입니다.

강의듣다가 , 결과가 강사님과 다르게 나오는데,

소스위치가. https://github.com/onjsd...=> 여기 아닌가요 ?

 

* JobRepositoryConfiguration 여길 따라하고 잇는데, 

 

JobExecution lastJobExecution = jobRepository.getLastJobExecution(jobName, jobParameters);

실행하면, lastJobExecution  값이 null 로 나와서.. 강의소스 따라해보려고 합니다

 

답변 2

·

답변을 작성해보세요.

0

 master 를 클릭해 보시면 아래에 보시면 브랜치들이 있습니다.

참고해 주세요~

0

소스 위치는

https://github.com/onjsdnjs/spring-batch-lecture

입니다.

제가 관련 소스 확인해 보니

인텔리 제이 기준으로 실행시 

--job.name=batchJob requestDate=20210102 를 Program arguments 에 설정해서 실행해야 합니다.

그렇게 되면

BATCH_JOB_EXECUTION_PARAMS 테이블의

KEY_NAME 컬럼에는  requestDate 가 저장되고 STRING_VAL 컬럼에는 20210102 가 저장됩니다.

그리고 나서 

@Override
public void afterJob(JobExecution jobExecution) {

String jobName = jobExecution.getJobInstance().getJobName();
JobParameters jobParameters = new JobParametersBuilder().addString("requestDate", "20210102").toJobParameters();
JobExecution lastExecution = jobRepository.getLastJobExecution(jobName, jobParameters);
if(lastExecution != null) {
for (StepExecution execution : lastExecution.getStepExecutions()) {
BatchStatus status = execution.getStatus();
System.out.println("BatchStatus = " + status.isRunning());
System.out.println("BatchStatus = " + status.name());
}
}
}

에서 디버깅을 통해 확인해 보면 lastExecution 에는 

위와 같이 값이 들어가 있습니다.

다시 한번 확인해 보시기 바랍니다.

탱크님의 프로필

탱크

질문자

2021.10.30

해당 소스위치에 파일이 한개만 나타나는데.. 제가 뭘 잘못보고 있는건가요 ?

 

 

 

감사합니다

수고하세요