본문 바로가기

전체 글8

[spring-batch] 잡 파라미터 잡 파라미터 JobInstance가 잡 이름 및 잡에 전달된 식별 파라미터로 식별 파라미터로 식별된다는 내용을 몇번 언급했다. 또한 동일한 식별 파라미터를 사용해 동일한 잡을 두 번 이상 실행할 수 없다는 점도 배웠다. 실제로 동일한 파라미터로 잡을 두 번 실행해보면 예외가 나는것을 알 수 있다. 그렇다면 이 시점에서 어떻게 잡에 파라미터를 전달하는지 궁금할 것이다. 스프링배치는 잡에 파라미터를 전달 할 수 있게 해줄 뿐만 아니라 잡 실행 전에 파라미터를 자동으로 증가시키거나 검증할 수도 있다. 잡 러너의 기능 중 하나가 바로 잡 실행에 필요한 JobParameters 객체를 생성해 JobInstance에 전달하는 것이다. 명령행에서 잡을 시작할 때와 쿼츠 스케줄러에서 잡을 시작할 때의 파라미터를 전달하.. 2021. 9. 24.
[spring-batch] Job 구성하기 HelloWorldJob 구성하기 스프링 배치를 통해서 간단한 HelloWorldJob을 구성해 보자. 의존성 추가 batch, mysql 의존성을 추가한다. 참고로, mysql외에 local에서 인메모리DB를 통해서 이용하고 HSQLDB를 사용할 수 있다. org.springframework.boot spring-boot-starter-batch mysql mysql-connector-java 8.0.23 DB connection 설정 application.properties 파일에 mysql datasource connection정보를 설정한다. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc.. 2021. 9. 24.
[spring-batch] Job 소개하기 잡 소개하기 잡은 처음부터 끝까지 독립적으로 실행 할 수 있는 고유하며 순서가 지정된 여러 스탭의 목록이라고 정의한다. 유일하다: 스프링 배치의 잡은 자바나 XML을 사용해 구성하며, 구성한 내용은 재사용할 수 있다. 순서를 가진 여러 스탭의 목록이다: 모든 스탭을 논리적인 순서대로 실행할 수 있도록 잡을 구성한다. 처음부터 끝까지 실행 가능하다: 배치처리는 어떠한 완료 상태에 도달할 때까지 추가적인 상호작용 없이 실행하는 처리이다. 즉, 잡은 외부 의존성 없이 실행할 수 있는 일련의 스탭이다. 예를 들어 특정 디렉토리 내에 처리할 파일이 수신되기를 세 번째 스탭이 기다리도록 잡을 구성하지 않는다. 대신에 파일이 도착했을 때 잡을 시작한다. 독립적이다: 각 배치 잡은 외부 의존성의 영향을 받지 않고 실행.. 2021. 9. 24.
[spring-batch] 스프링 배치 아키텍쳐 스프링 배치 아키텍쳐 잡과 스탭 잡은 여러개의 스탭으로 구성된다. 스탭은 태스크릿 기반 스탭과 청크 기반 스탭 으로 나뉜다. 테스크릿 기반 스탭 테스크릿 기반 스탭은 구조가 간단하다. Tasklet 인터페이스를 구현하면 된다. 스탭이 중지될때 까지 execute 메서드가 계속 반복해서 수행된다. execute 메서드를 호출할 때 마다 독립적인 Tx을 얻는다. 태스크릿 기반 스탭은 초기화, 저장 프로시저 실행, 알림 전송등과 같은 잡에서 주로 사용된다. 청크 기반 스탭 아이템 기반 처리에 주로 사용한다. ItemReader, ItemProcessor, ItemWriter 3개의 주요부분으로 구성됨. ItemProcessor는 필수는 아님 (optional 이다) 스프링의 잡 구조화 방법이 가진 장점 중 하.. 2021. 9. 24.