안녕하세요.
가입 후 처음으로 질문드립니다.
현재 Spring-boot와 Spring-batch를 이용해서 프로젝트를 진행중입니다.
서버 초기 기동시에 모든 bean들이 올라가면서 batch에 관련된 bean들도 같이 올라가는 걸로 알고 있습니다.
만약에 초기에 Job에 step의 순서가 A->B->C로 정의되었다고 한다면,
혹시 다음 실행시에 step의 순서를 B->A->C 이런식으로 바꿔서 실행할 수 있는 방법이 있을까요?
JobExecutionDecider를 이용해서 방법을 찾아보려했으나, step이 많아질수록 코딩의 범위가 확대되는 문제가 예상됩니다.
예를 들어 StepA, StepB, StepC가 있을 경우
A->B->C, A->C->B, B->A->C, B->C->A, C->A->B, C->B->A의 가짓수(3!)이 발생하는데 이걸이용하게되면
.start(decider).on("A").to(StepA())
.next(decider).on("B").to(StepB()).next(StepC()).end()
.from(decider).on("C").to(StepC()).next(StepB()).end()
.from(decider).on("B").to(StepB())
.....
.....
이런식으로 3! 만큼의 케이스를 다 기술해줘야 할까요?
그렇게 된다면 Step의 수가 많아질수록 기하급수적으로 늘어날텐데...
뭔가 더 좋은방법이 없을까요?