Job을 실행하게 되면 실패 또는 성공을 하게 되는데
일반적으로 job이 실패 했을 경우에는 재시작이 가능하고
job이 성공했으면 재시작이 불가능하다.
기본 값은 true -> 실패 했을 경우 job 재시작 가능
false로 설정 변경 -> 실패 해도 재시작 불가능
job Execution이 없다는 개념은 job을 처음 실행한다는 것이다.
job Execution이 있다는 것은 재시작을 한다는 것이다.
사용법은 아래와 같다.
.preventRestart 메서드만 호출하면 되는 것이다.
@RequiredArgsConstructor
@Configuration
public class ExecutionContextConfiguration {
private final JobBuilderFactory jobBuilderFactory;
private final StepBuilderFactory stepBuilderFactory;
private final JobExecutionListener jobRepositoryListener;
@Bean
public Job batchJob1() {
return jobBuilderFactory.get("batchJob1")
.start(step1())
.next(step2())
.validator(new DefaultJobParametersValidator(new String[]{"name","date"}, new String[]{"count"}))
.preventRestart()
.listener(jobRepositoryListener)
.build();
}
}
JobBuilderHelper 클래스에 있는 preventRestart 메서드를 호출하는 것인데
메서드를 호출하게 되면 properties 즉 commonJobProperties의 restartable 의 값을 false로 변경하게 되는 것이다.
기본 commonJobProperties의 restartable의 값은 true이다.
'강의 > 스프링배치' 카테고리의 다른 글
simpleJob 아키텍처 (0) | 2023.01.15 |
---|---|
스프링 배치 실행 - incrementer() (0) | 2023.01.15 |
SimpleJob - 개념 및 API 소개 (validator) (0) | 2023.01.10 |
SimpleJob - 개념 및 API 소개 (0) | 2023.01.10 |
스프링 배치 실행 - JobBuilderFactory / JobBuilder (0) | 2023.01.09 |