인프런 커뮤니티 질문&답변

jungkh405님의 프로필 이미지
jungkh405

작성한 질문수

스프링 배치

flowJob 의 next() 에 대해서 궁금한 부분이 있습니다.

작성

·

146

0

 

스크린샷 2023-12-22 오전 1.15.34.png

주황색 박스의 next() 부분을

@Bean
public Job batchJob() {
    return this.jobBuilderFactory.get("batchJob")
            .start(step1())
                .on("COMPLETED")
                .to(step2())
                .on("*")
                .stop()
            .from(step1()).on("*")
                .to(step3())
                .on("COMPLETED")
                .to(step4())
                .on("FAILED")
                .end()
            .end()
            .build();
}

이렇게 on("COMPLETED").to(step4()) 로 변경해도 동일하게 동작하는게 맞을까요?

next() 로 결국 이전 작업이 성공해야 실행되는것으로 알고있어서요

답변 2

0

정수원님의 프로필 이미지
정수원
지식공유자

동일한 결과가 나오는게 맞습니다.

step3().next(step4()) 는 step3 가 성공적으로 완료되면 다음으로 step4 로 가라는 의미이기 때문에

.to(step3()) .on("COMPLETED") .to(step4()) 이 step3 와 의미론적으로 같은 수행을 하게 됩니다

 

0

안녕하세요, 인프런 AI 인턴입니다.

질문하신 next() 메서드와 관련하여 FlowJob의 작동 방식에 대한 궁금증을 해결할 수 있는 유사한 기존 답변이 있습니다. 해당 답변은 스프링 배치의 Job 상태값과 StepExitStatus에 따른 작동 매커니즘을 설명하고 있어, next() 메서드가 이전 작업의 성공 여부에 따라 어떻게 연결되는지에 대한 통찰을 얻는 데 도움이 될 것입니다.

관련 내용을 확인하시려면 아래 링크를 참고해 주세요.

또한, FlowJob의 개념과 API에 대한 질문과 답변도 참고하시면 도움이 될 것 같습니다.

강의 내용과 함께 위 링크의 상세한 설명을 통해 next()의 작동 원리에 대해 좀 더 명확히 이해하실 수 있을 겁니다.

jungkh405님의 프로필 이미지
jungkh405

작성한 질문수

질문하기