본문 바로가기

Spring Batch

(4)
Spring Batch 를 Jenkins 를 이용해 간단하게 사용해보자 실무 맛보기 실무에서는 어떻게 사용할까? 실무는 소프트웨어 개발 시 지속적 통합 서비스를 제공하는 툴인 jenkins 를 이용해 spring-batch 를 실행한다. 보통 원격 Repository 와 Jenkins 를 연결해 Jenkins 에서 빌드후 실행하는 형식이 되지만, 지금은 devOps 에 대해 알아보는 시간이 아니니 간단하게 jenkins 에 spring-batch 프로젝트 jar 파일을 옮긴 후 Jenkins 의 scheduling 을 활용해 실행한 뒤, 결과를 slack 알림 서비스를 통해 받아보는 예제를 진행해 보겠다. 현재 부서의 프로젝트 또한 jenkins 를 활용해 spring-batch를 돌리고 slack 에 알림(jenkins가 진행하는 빌드에 대한 알림)을 받고있다. (배치 성..
Spring Batch A 부터 Z 까지 스프링 배치 래퍼런스 문서 번역 : https://godekdls.github.io/Spring%20Batch/introduction/ Batch Spring Batch 공식 Reference : https://docs.spring.io/spring-batch/docs/current/reference/html Spring Batch 컴퓨터에서 사람과 상호작용 없이 실행되는 프로그램이다. 사용자의 피드백이 필요하지않다. 이는 사용자의 개입 없이 진행됨을 말한다.(일반적인 Web 프로그램과의 차이) Spring Batch 사용 예 대용량 데이터베이스, 파일, 큐를 읽는 것 일정하고 주기적인 데이터 처리 과정 ==> 주로 데이터의 처리에 사용된다. Spring Batch 의 구조 Job > Step > Tas..
스프링 배치 스텝 Step 스텝 Step 잡이 전체적인 처리를 정의한다면, 스텝은 잡의 구성 요소를 담당한다. 스텝은 독립적이고 순차적으로 배치 처리를 수행한다. 때문에 스텝은 서로간 독립적이며 트랜젝션은 스텝 내에서 이뤄진다. 스텝 구성 태스크릿 스텝 - Tasklet : 인터페이스의 execute 메서드를 구현 후 RepeatStatus 객체를 반환 *RepeatStatus 는 CONTINUABLE 과 FINISHED 두 가지가 있다. CONTINUABLE 은 스프링 배치에게 해당 태스크릿을 다시 실행하라고 하는 것이다.(특정 조건 충족시까지 반복해야 할 때) - CallableTaskletAdapter : Callable 인터페이스의 구현체를 구성할 수 있게 해주는 어댑터이다. 새 스레드에서 실행된다는 점에서 Runnable..
스프링 배치 잡 Job 잡 Job 잡은 흐름과 유사하다. 잡을 처음부터 끝까지 독립적으로 실행할 수 있는 고유하며 순서가 지정된 여러 스텝의 목록이라고 정의할 수 있다. 잡의 실행은 잡 러너 (Job Runner) 에 의해 시작된다. 잡 러너는 잡 이름과 여러 파라미터를 받아들여 잡을 실행시키는 역할을 한다. 스프링 배치는 두 가지 잡 러너를 제공한다. - CommandLineJobRunner : 스크립트를 이용하거나 명령형에서 직접 잡을 실행할 때 - JobRegistryBackgroundJobRunner : 자바 프로세스 내에서 Quartz (쿼츠) 나 JMX 후크와 같은 스케줄러를 사용해 잡을 실행한다면, 스프링이 부트스트랩될 때 가능한 잡을 가지고 있는 JobRegistry 를 생성한다. 즉 JobRegistryBack..