1. ExecutionContext
: jobExecutionContext, StepExecutionContext 관련. 끊겼을 때 거기서부터 다시 시작할 수 있는 정보를 저장한다.
2. xxxListener
예를 들면 JobExecutionListener. 해당 Job의 전후에 처리할 메서드를 만들 수 있다. 해당 Listner를 implements해서 @Component로 올려도 되고,
아니면 4.2xx부터는 @BeforeJob @AfterJob같은 어노테이션 기능을 제공하기 때문에 implements안하고 @Component로만 올린다음에 해당 어노테이션 붙은 메서드를 작성하여 좀더 다양한 메서드를 구현할 수 있다.
(물론 @Component로 등록안하고. 곧바로 @Bean으로 올려도 OK)
cf. skip관련 Listner도 있음. 어떤 로직 발생시 skip하고- skip할때의 상세한 설정 구현.
3. 청크지향
chunk란 커밋의 단위이다.
chunk가 없다면. 배치 실행 도중 에러발생으로 중단되었을 때 처음부터 다시 시작해야 한다.. 그러나 chunk단위로 커밋함으로써 해당 커밋이후부터 restart할 수 있게 된다.
4. ItemStream
ExecutionContext에서 데이터를 읽고. restrart가능하게 해준다?
5.
@Bean
public Job job() {
return this.jobBuilderFactory.get("job")
.start(stepA())
.on("*").to(stepB())
.from(stepA()).on("FAILED").to(stepC())
.end()
.build();
위의 경우에서. *가 먼저 오지만 스프링은 구체적인 조건을 먼저 보기때문에.
이경우 fail 이외는 A->B , fail시에는 A-> C로 이행한다.
여기서 on안에 들어가는 문자는 ExitStatus로. 얼마든지 커스텀이 가능함.
기본적으로는 BatchStatus랑 문자적으로는 동일해서. 걍 쓰면 되긴함.
댓글 없음:
댓글 쓰기