반응형
본 내용은 온라인 강의 사이트 인프런의 정수원 님의 강의 내용이 포함되어 있습니다.
스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch
스프링 배치 프로젝트 구성 및 환경 설정
아래 링크를 통해 스프링 배치를 실행하기 위한 프로젝트 생성 및 환경 설정을 수행하고 나면 간단한 스프링 배치 Job을 구성하여 실행할 수 있다.
https://ittrue.tistory.com/414
스프링 배치 시작하기
스프링 배치를 실행하기 위한 프로젝트 구성 및 환경 설정이 끝나면 간단한 스프링 배치 로직을 작성할 수 있다.
HelloJobConfiguration 작성하기
@Configuration
@RequiredArgsConstructor
public class HelloJobConfiguration { // Job 정의
private final JobBuilderFactory jobBuilderFactory;
private final StepBuilderFactory stepBuilderFactory;
@Bean
public Job helloJob() {
return jobBuilderFactory.get("helloJob") // helloJob 생성
.start(helloStep1()) // helloStep1 시작
.next(helloStep2()) // helloStep1이 끝나면 시작
.build();
}
@Bean
public Step helloStep1() { // helloStep1 생성
return stepBuilderFactory.get("helloStep1")
.tasklet((contribution, chunkContext) -> {
System.out.println("==================");
System.out.println("step1 was executed");
System.out.println("==================");
return RepeatStatus.FINISHED;
})
.build();
}
@Bean
public Step helloStep2() { // helloStep2 생성
return stepBuilderFactory.get("helloStep2")
.tasklet((contribution, chunkContext) -> {
System.out.println("==================");
System.out.println("step2 was executed");
System.out.println("==================");
return RepeatStatus.FINISHED;
})
.build();
}
}
실행 결과
2023-06-15 01:22:54.144 INFO 10000 --- [ main] o.s.b.c.l.support.SimpleJobLauncher : Job: [SimpleJob: [name=helloJob]] launched with the following parameters: [{}]
2023-06-15 01:22:54.172 INFO 10000 --- [ main] o.s.batch.core.job.SimpleStepHandler : Executing step: [helloStep1]
==================
step1 was executed
==================
2023-06-15 01:22:54.183 INFO 10000 --- [ main] o.s.batch.core.step.AbstractStep : Step: [helloStep1] executed in 11ms
2023-06-15 01:22:54.188 INFO 10000 --- [ main] o.s.batch.core.job.SimpleStepHandler : Executing step: [helloStep2]
==================
step2 was executed
==================
2023-06-15 01:22:54.192 INFO 10000 --- [ main] o.s.batch.core.step.AbstractStep : Step: [helloStep2] executed in 3ms
2023-06-15 01:22:54.195 INFO 10000 --- [ main] o.s.b.c.l.support.SimpleJobLauncher : Job: [SimpleJob: [name=helloJob]] completed with the following parameters: [{}] and the following status: [COMPLETED] in 35ms
Job 구성 및 실행
- @Configuration 선언 : 하나의 배치 Job을 정의하고 빈 설정
- JobBuilderFactory : Job을 생성하는 빌더 팩토리
- StepBuilderFactory : Step을 생성하는 빌더 팩토리
- Job : helloJob 이름으로 Job 생성
- Step : helloStep 이름으로 Step 생성
- tasklet : Step 안에서 단일 태스크로 수행되는 로직 구현
- Job 구동 → Step 실행 → Tasklet 실행
Job, Step, Tasklet
Job이 구동되면 Step을 실행하고 Step이 구동되면 Tasklet을 실행하도록 구성된다.
Job
Job은 하나의 일, 일감으로 여러 가지의 Step을 가질 수 있으며, 각 Step이 순차적으로 실행된다.
Step
Step은 일의 항목, 단계를 의미하며 Step 안에 구현된 Tasklet을 실행한다.
Tasklet
Tasklet은 실제 작업 내용으로 각 Step 별로 실행할 비즈니스 로직이 구현되어 있다.
반응형
'프레임워크(Framework) > Spring' 카테고리의 다른 글
[Spring Batch] 스프링 배치 Job 이해하기 - Spring boot 2.x (0) | 2023.06.23 |
---|---|
[Spring Batch] 스프링 배치 DB 스키마 이해하기 - Spring boot 2.x (0) | 2023.06.20 |
[Spring Batch] 스프링 배치 프로젝트 구성 및 환경 설정 - Spring boot 2.x (0) | 2023.06.12 |
[Spring Boot] 스프링 부트 웹 서버 톰캣(Tomcat)에서 제티(Jetty)로 변경하기 (0) | 2023.05.19 |
[Spring Batch] 스프링 배치란 무엇인가? - 개념, 아키텍처, 구성요소 (0) | 2023.02.24 |