전체 글
Collection
1. mutableList vs imutableList fun main() { val currencyList = listOf("1", "2", "3") val mutableListOf = mutableListOf() mutableListOf.add("1") mutableListOf.add("2") mutableListOf.add("3") val mutableListOf = mutableListOf() .apply { add("1") add("2") add("3") } } immutableList는 불변 , mutableList는 변경이 가능하다 immutableList는 add()라는 메소드가 없다. (불변이기 때문에 초기 생성시 값을 넣어주고 그뒤로 변경불가) .apply{}를 사용하면 좀더 가독성 좋..
StepContribution
청크 프로세스의 변경 사항을 버퍼링 한 후 StepExecution 상태를 업데이트하는 도메인 객체 청크 커밋 직전에 StepExecution의 Apply 메서드를 호출하여 상태를 업데이트 ExitStatus의 기본 종료코드 외 사용자 정의 종료코드를 생성해서 적용 할 수 있음 1. stepExecution이 StepContribution을 생성 new StepContribution(this)를 통해 생성하는것 확인가능 2. tasklet을 실행하면서 방금 생성한 stepContribution을 인자로 넣어줌 3. 우리가 작성한 tasklet으로 넘어옴 4. 해당 tasklet이 정상적으로 처리되면 stepExecution에 방금 실행을 통해 얻은 stepContribution값을 넘겨줌 apply메소드..
StepExecution
Step에 대한 한번의 시도를 의미하는 객체 Step 실행 중에 발생한 정보들을 저장하고 있는 객체 시작시간, 종료시간, 상태, commitCount, rollback count등의 속성을 가짐 Step이 매번 시도될 때마다 생성되며 각 Step 별로 생성된다. Job이 재시작 하더라도 이미 성공적으로 완료된 Step은 재 실행되지 않고 실패한 Step만 실행 Step이 실제로 시작됐을 때만 StepExecution을 생성함 Step의 StepExecution이 모두 정상적으로 완료 되어야 JobExecution이 정상적으로 완료된다. (하나라도 실패시 JobExecution은 실패) JobExecution와 StepExecution은 1:M관계 * Batch_Step_Execution 테이블 * Bat..
Step
특징 Batch Job을 구성하는 독립적인 하나의 단계 입력과 처리 그리고 출력과 관련된 복잡한 비즈니스 로직을 포함하는 모든 설정들을 담고 있음 배치 작업을 어떻게 구성하고 실행할 것인지 Job의 세부 작업을 Task 기반으로 설정하고 명세해 놓은 객체 모든 Job은 하나 이상의 Step으로 구성 구현체 TaskletStep 가장 기본이 되는 클래스(직접 생성한 Tasklet 실행, ChunkOrientedTasklet을 실행) ParitionStep 멀티 스레드 방식으로 Step을 여러개로 분리해서 실행 JobStep Step 내에서 Job을 실행하도록 한다(Step에서 Job을 실행) FlowStep step 내에서 Flow를 실행하도록 한다(Step에서 Flow를 실행) Job(execute())..
JobExecution
JobInstance에 대한 한번의 시도를 의미하는 객체로 Job 실행 중에 발생한 정보들을 저장하고 있는 객체 시작시간, 종료시간, 상태(시작됨, 완료, 실패) 종료상태의 속성을 가짐 JobInstance 과의 관계 JobExecution은 Failed또는 Completed 등의 Job의 실행 결과 상태를 가지고 있음 JobExecution의 실행 결과가 'Completed'면 JobInstance 실행이 완료된 것으로 간주해서 재 실행이 불가 JobExecution의 실행 결과가 Failed면 JobInstance실행이 완료되지 않은것으로 간주해 재실행이 가능함 JobParameter가 동일한 값으로 Job을 실행할지라도 JobInstance를 계속 실행할 수 있음 JobExecution의 실행 상태..