4. Spring batch, boot 연동 및 처리 과정.

spring batch 와 spring boot를 연동하고 프로세스 과정을 살펴보겟습니다.

sample 데이터 추가.

image

schema-@@platform@@.sql으로 플랫폼에 맞춰서 sql문이 돌아간다.
-all이면 모든 플랫폼에 대해 기본값으로 설정됨.

ex>schema-mysql.sql

image1

image2

간단하게 firstName 과 lastname을 대문자로 만들어주는 PersionItemProcessor를 만들었습니다.
PersionItemProcessor는 ItemProcessor의 인터페이스를 구현받습니다.

Item이 나오는데 Item은 처리할 데이터의 가장 작은 구성 요소 입니다.

image3

이제 실제 Batch job을 돌려봅시다. Spring batch는 개발자가 비지니스 로직에 집중할수 있도록 많은 유틸리티 클래스를 제공합니다.
EnableBatchProcessing은 jobBuilderFactory와 stepBuilderFactory 빈을 제공합니다.
Job은 step 으로 이루어져 있고 Step은 reader, processor, writer로 이루어져 있습니다.
JobInstance 는 Job + Job Parameter이기 때문에 Job Parameter를 자동으로 Increment 하기 위해서 사용합니다.

Step에서는 한번에 쓸 데이터 양을 정의 합니다. 이 경우에는 한번에 최대 10개 item의 record를 기록합니다.”chunk”의 입력 및 출력 유형을 나타내며, ItemReader<~>및 ItemWriter<~> 와 일치합니다.

image4

아래 그림을 보면 위에 프로세스와 비슷하게 흘러가는걸 확인할수 있습니다.

image
reader   –   sample-data에 있는 csv파일을 읽어서 하는 부분이니 이런식으로 읽는구나만 참조 하면 될 것 같습니다.
writer – date를 db에 쓰는 부분 입니다.

image5

  Processor 부분인데 실제 비지니스 로직이 포함 되는 부분입니다.

Image6.png

job 에 걸린 listener를 보면 끝난 상태를 체크하는 부분을 JobExecution에서 status 를 가져오는것을 알수 있습니다.

Image7.png

Job Execution에 대해서는 이전 글을 참고하시면 됩니다.
결과 화면 :
Image10.png
배치 처리는
  1. main 메소드가 있는 jar 만들거나
  2. 웹 애플리케이션에 포함시킨다.

jar 만드는 방법은 구글링 참고.

위에 사이트에서 소스를 받아서 돌렸는데 h2 메모리 디비 말고 mysql을 쓰고 싶어서

datasource에

Image8.png
다음과 같이 세팅했습니다.
BasicDataSource 를 import하기 위해서 maven에 dependency를 추가하면 끝.
Image9.png

— 기타 —
1. 쿼츠랑 스프링 스케줄러랑 무슨차이인가요?  -P사 다니는 K모씨

Quartz와 Spring  Scheduler의 차이.
Quartz
– 모든 Java 애플리케이션에 통합 할 수있는 오픈 소스 작업 스케줄 라이브러리.
– 수십, 수백 또는 심지어 수만 개의 작업을 실행하기위한 간단하거나 복잡한 일정을 만드는 데 사용할 수 있습니다.
– JTA 트랜잭션 및 클러스터링 지원과 같은 많은 엔터프라이즈 급 기능이 포함되어 있습니다

Spring  Scheduler
– Spring은 또한 Timer와 JDK 1.3이후에  Quartz Scheduler와의 스케쥴링을 지원하기위한 통합 클래스를 제공한다.
->https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

WordPress.com 제공.

위로 ↑

%d 블로거가 이것을 좋아합니다: