본문 바로가기

분류 전체보기

(461)
스프링 배치 도메인 이해 - JobLauncher https://docs.spring.io/spring-batch/docs/4.2.x/reference/html/index-single.html#configureJob https://godekdls.github.io/Spring%20Batch/domainlanguage/ https://velog.io/@ehdrms2034/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B0%B0%EC%B9%98-Job-%EC%84%A4%EC%A0%95%EA%B3%BC-%EC%8B%A4%ED%96%89 동기적 실행 동작 순서 1. Client가 JobLauncher 를 실행 2. JobLauncher는 Job을 실행 3. Job은 Step 또는 Tasklet을 실행 시켜 Business 로직이 수행되도록 한다. 4..
스프링 배치 도메인 이해 - Job repository 일반적으로 SERIALIZABLE 로 하게되면 너무 엄격하고 lock을 걸기 때문에 성능상에 영향을 미칠 수 있다. 그러나 spring batch 같은 경우에는 많은 사용자가 동시 접근하는 유형이 아니기 떄문에, SERIALIZABLE 최고 수준으로 트랜잭션 isolation을 지정하고 있다. 설정 방법
스프링 배치 도메인 이해 - ExecutionContext job과 step의 관계를 연관지어서 이해하자. job과 step에 포함된 도메인이 아니다. step 간의 데이터를 공유하고자 한다면 본인의 step에서만 data를 공유하기 위해 execution context에 데이터를 저장하는 방법에 대해서 알아보자 실제로 저장은 아래와 같이 됩니다.
스프링배치 도메인 이해 - StepContribution 청크 프로세스: 큰 범위의 청크 프로세스는 Tasklet을 포함한다. 청크 프로세스를 처리하는 전용 Tasklet이 있는데 이것이 청크 프로세스를 실행한다. 우리가 사용하는 Tasklet도 Chunk 기반이다. Stepcontribution 기능 중 독특한 것은 Batch status 값과 종료 코드인 ExistStatus 값을 가지는데 그 중 종료 코드인 ExistStatus 값을 변경할 수 있는 권한이 있다. Step Contribution, Step Execution 흐름 확인 1. taskletstep이 실행되면 stepExecution 객체를 생성한다. 2. stepExecution이 내부적으로 stepcontribution을 생성한다. 3. taskletStep이 chunkOrientedTas..
스프링 배치 도메인 이해 - Step Execution 성공한 step은 기본적으로 재실행이 안되지만 옵션을 통해서 성공한 step도 재실행이 되도록 할 수 있다. step이 실패하면, 이후 step은 실행되지 않는다. 파란색 박스 jobParameter는 2021.01.02 이다.
스프링 배치 도메인 이해 - step 1. Step 독립적인 단계 Job은 가장 큰 틀의 명세서 Job 안에 우리가 구현해야할 그런 기술적인 내용을 담지는 않는다. Job은 큰 틀의 구성과 설정이기 때문이다. 실제 비지니스 로직은 Step이라는 도메인 객체에 포함하게 된다. Step은 인터페이스기 때문에 이를 구현한 구현체를 Spring이 제공하고 있다. 물론 직접 구현해도 상관이 없다. 물론 spring batch가 제공하는 step의 구현체를 이용하여도 대부분 잘 사용할 수 있다. TaskletStep, Partitionstep, JobStep, FlowStep 구조를 살펴보자 Step 인터페이스 이를 구현한 AbstractStep Job이라는 도메인이 있고 Job의 bean을 생성하고 Job은 여러개의 step을 포함한다. Step은 ..
스프링 배치 도메인 이해 - JobExecution 1. JobExecution JobExecution은 "Failed" 또는 "Completed" 등의 Job의 실행 결과 상태를 가지고 있음 JobExecution의 실행 상태 결과가 JobInstance 실행이 완료된 것으로 간주해서 'COMPLETED'면 재 실행 불가 JobExectuion의 실행 상태 결과가 JobInstance 실행이 완료되지 않은 것으로 간주해서 'Failed'면 재실행이 가능함. JobExecution의 실행 상ㅇ태 결과가 Completed 될 때 까지 하나의 JobInstance 내에서 여러 번의 시도가 생길 수 있음.
스프링 배치 도메인 이해 - Job + JobInstance + JobParameter 1. Job 2. Job의 구조 Jobparametes는 이후에 학습할 도메인 JobLauncher도 이후에 학습 예정 BatchJob을 구성하고 실행시키는 주체는 JobLauncher 클래스이다. job을 실행시킬 때 필요한 인자는 Job객체와 JobParameters라는 도메인 객체를 가지고 JobLauncher가 실행시킨다. Job은 내부적으로 Job을 구성할 때 여러 Step을 포함해서 구성한다. Job은 하나의 도메인 객체고 interface로 제공되지만 SimpleJob은 Step을 포함하고 있는 일종의 컨테이너 역할을 한다. Steps라는 리스트를 품고 있고 job이 구도오디면 Step1, 2, 3 을 실행시키는 구조이다. Job은 최상위 interface이고 execute 메서드가 있다. ..