강의 (130) 썸네일형 리스트형 스프링 배치 실행 - JobBuilderFactory / JobBuilder 지금까지는 SimpleJobBuilder를 사용했다. Job을 생성하는 것 자체가 내부적으로 SimpleJobBuilder를 사용한다는 것이다. FlowJobBuilder는 나중에 살펴볼 예정이다. Job을 생성하기 위한 절차적인 과정을 살펴볼 것이다. simplejobbuilder는 step만 들어갈 수 있고 flowjobbuilder는 step 또는 flow가 들어갈 수 있다. CommonJobProperties는 job이 실행될 때 필요한 항목들을 다 가지고 있다. JobBuilderHelper는 SimpleJobRepository를 참조한다. JobBuilder가 생성되는 클래스간의 계층 및 구조를 명확하게 이해하면 Job Configuration을 구성할 때 많은 도움이 된다. JobReposi.. 스프링 배치 실행 - 배치 초기화 설정 1. JobLauncherApplicationRunner bean으로 정의된 job을 spring boot가 scan해서 JobLauncherApplicationRunner에게 전달해주고 JobLauncherApplicationRunner가 각각의 job을 실행시킴 2. BatchProperties 1. 실행순서 1. BatchAutoConfiguration public class BatchAutoConfiguration { public BatchAutoConfiguration() { } . . . public JobLauncherApplicationRunner jobLauncherApplicationRunner(JobLauncher jobLauncher, JobExplorer jobExplorer, J.. 스프링 배치 도메인 이해 - 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은 .. 이전 1 2 3 4 5 6 7 8 ··· 17 다음