본문 바로가기
개발 공부/개발 지식

배치 ( Batch ) 와 스케줄러 ( Schduler ) Feat. Quartz

by 코딩호야 2023. 4. 17.

배치 란

- 사용자와 상호작용 없이 여러 개의 작업을 미리 정해진 순서에 따라 중단 없이 처리하는 것

  데이터의 일괄처리를 뜻한다. ( 데이터를 실시간으로 처리하는 개념X )

 

배치의 특징

 

스케줄러 란

- 특정한 시간에 등록한 작업을 자동으로 실행시키는 것

 

 

스케줄러의 특징

 

 

 

Quartz 란

Quartz는 Terracotta 라는 회사에서 의해 개발된 Job Scheduling 라이브러리입니다. 완전히 자바로 개발되어 어느 자바 프로그램에서도 쉽게 통합해서 개발할 수 있습니다.
Quartz는 수십에서 수천 개의 작업도 실행 가능하며 간단한 interval 형식이나 Cron 표현식으로 복잡한 스케줄링도 지원합니다. 예를 들면 매주 실행하는 작업이나 매월 마지막 날에 실행하는 작업도 지정할 수 있습니다.

 

 

Quartz 장단점

장점

 - DB 기반으로 스케줄러 간의 Clustering 기능을 제공한다

 - 시스템 Fail-over와 Random 방식의 로드 분산처리를 지원한다

 - In-memory Job Scheduler도 제공한다

 - 여러 기본 Plug-in을 제공한다

 - ShutdownHookPlugin - JVM 종료 이벤트를 캐치해서 스케줄러에게 종료를 알려준다

 - LoggingJobHistoryPlugin - Job 실행에 대한 로그를 남겨 디버깅할 때 유용하게 사용할 수 있다

 

단점

 - Clustering 기능을 제공하지만, 단순한 random 방식이라서 완벽한 Cluster 간의 로드 분산은 안된다

 - 어드민 UI을 제공하지 않는다

 - 스케줄링 실행에 대한 History는 보관하지 않는다

 - Fixed Delay 타입을 보장하지 않으므로 추가 작업이 필요하다

 

   * Clustering :  여러 개체를 묶는 것 혹은 비슷한 개체끼리 묶는 것 

 

 

 

 

 

 

 

 

 

[Spring] Batch와 Scheduler의 차이 [Spring Scheduler 사용방법]

1. Batch와 Scheduler의 차이 1) 배치(Batch)란? 배치(Batch) : 일괄처리 사용자와 상호작용 없이 여러 개의 작업을 미리 정해진 순서에 따라 중단 없이 처리하는 것 2) 스케쥴러(Scheduler)란? 특정한 시간에

yermi.tistory.com

 

'개발 공부 > 개발 지식' 카테고리의 다른 글

Nginx 란?  (0) 2023.07.18
자주 쓰는 Linux 명령어  (0) 2023.07.18
프로그램 / 프로세스 / 스레드 / 멀티 스레드  (0) 2023.07.18
Eclipse에서 xml파일의 쓰임새  (2) 2023.04.18
데이터베이스 샤딩이란?  (1) 2023.04.17