[Spring] 배치(Batch) 프로그램(일괄처리)

728x90
반응형

* 스프링부트에는 쿼츠 라이브러리가 들어가있다.

배치 프로그램

컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식일괄적으로 대량건을 처리하는 프로그램.

요청이 아닌 정해진 일정 시간에 실행되는 프로그램. 많은 데이터양을 쿼리로 한꺼번에 보여주기 위해서는 상당한 시간이 소요된다.

-> 데이터를 정리해서 보여주기 위해 배치 프로그램을 쓴다. 또는 데이터를 정리를 해야할때 DB, shell 스크립트(OS), Server Language에서 처리 가능

스프링 부트에서의 배치

@EnableScheduling-> 스프링 부트 파일(시작파일)에 어노테이션 추가

배치 전용 java 파일에 @component 어노테이션 추가하여 빈등록

@Scheduled(cron=“식”) -> 배치 java 파일의 메서드에서 사용

쿼츠 라이브러리에서 사용되는 식으로 배치 작동 시간을 조작한다.

@Scheduled(cron=“식”)에 들어갈 식이 배치 작동 시간이다.

배치 프로그램의 식

의미
"0 0 12 * * ?"
매일 12시(정오)에실행
"0 15 10 ? * *"
매일 오전 10시15분에 실행
"0 15 10 * * ?"
매일 오전 10시15분에 실행
"0 15 10 * * ? *"
매일 오전 10시15분에 실행
"0 15 10 * * ? 2005"
2005년의 매일 오전 10시15분에 실행
"0 * 14 * * ?"
매일 오후 2시부터 오후 2시59분까지 매분마다 실행
"0 0/5 14 * * ?"
매일 오후 2시부터 오후 2시55분까지 매5분마다 실행
"0 0/5 14,18 * * ?"
매일 오후 2시부터 오후 2시55분까지 매5분마다 실행 그리고
매일 오후 6시부터 오후 6시55분까지 매5분마다 실행
"0 0-5 14 * * ?"
매일 오후 2시부터 오후 2시05분까지 매분마다 실행
"0 10,44 14 ? 3 WED"
3월의 매주 수요일 오후 2시10분과 오후 2시44분에 실행
"0 15 10 ? * MON-FRI"
매주 월, 화, 수, 목, 금요일 오전 10시15분에 실행
"0 15 10 15 * ?"
매월 15일 오전 10시15분에 실행
"0 15 10 L * ?"
매월 마지막날 오전 10시15분에 실행
"0 15 10 ? * 6L"
매월 마지막 금요일 오전 10시15분에 실행
"0 15 10 ? * 6L 2002-2005"
2002년부터 2005년까지의 매월 마지막 금요일 오전 10시15분에 실행
"0 15 10 ? * 6#3"
매월 세번째 금요일 오전 10시15분에 실행

 

실습

728x90
반응형