출처
- 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다.
목차
- Spring Batch - 14. 배치 초기화 설정 (application.properties)
- Spring Batch - 13. JobLauncher
- Spring Batch - 12. JobRepository
- Spring Batch - 11. ExecutionContext
- Spring Batch - 10. StepContribution
- Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블
- Spring Batch - 08. Step
- Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블
- Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블
- Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블
- Spring Batch - 04. JobLauncher
- Spring Batch - 03. Job
- Spring Batch - 02. Batch 에서 사용하는 Table
- Spring Batch - 01. @EnableBatchProcessing
JobLauncher
Batch Job 을 실행시키는 역할
- Job 과 JobParameters 를 인자로 받으며 요청된 Batch 작업을 수행한 후 최종 Client 에게 JobExecution 을 반환한다.
- Spring Batch 가 구동 되면 JobLauncher Bean 이 자동 생성된다.
JobLauncher 를 이용한 Job 실행
Spring boot Batch 에서는 JobLauncherApplicationRunner 가 자동적으로 JobLauncher 를 실행시킨다.
- 동기적 실행
- taskExecutor 를
SyncTaskExecutor
로 설정할 경우 - JobExecution 을 획득하고 배치 처리를 최종 완료한 후 Client 에게 JobExecution 을 반환한다.
- 스케줄러 에 의한 배치처리에 적합하다.
- taskExecutor 를
- 비 동기적 실행
- taksExecutor 가
SimpleAsyncTaskExecutor
로 설정할 경우 - JobExecution 을 획득한 후 Client 에게 바로 JobExecution 을 반환하고 배치처리를 완료한다.
- HTTP 요청 에 의한 배치처리에 적합하다. 배치 처리 시간이 길어질 경우 응답이 늦어지지 않도록 한다.
- taksExecutor 가
public interface JobLauncher { |
동기적 방식
JobLauncher
|
실행 결과
비 동기적 방식
- SimpleJobLauncher 는 Bean 으로 생성되지 않는다.
- 때문에 BasicBatchConfigurer Bean 을 이용해 SimpleJobLauncher 객체를 가져오도록 한다.
|