본문 바로가기

전체 글28

(5) Quartz Trigger Trigger의 종류는 크게 3가지가 있다 SimpleTrigger 한번만 실행되는 작업이나, 특정 시간에 시작되어 일정 주기로 반복되는 작업에 사용 속성: start-time, end-time, 반복 횟수, 반복 주기(interval) ex. 2022년 10월 30일 11:24:11초 이후 부터 10초마다 5회 반복 //특정시간에 작동하는 반복없는 트리거 SimpleTrigger trigger = (SimpleTrigger) newTrigger() .withIdentity("trigger1", "group1") //트리거이름과 트리거그룹을 지정 .startAt(myStartTime) //시간 지정 .forJob("job1", "group1") //작업이름과 작업그룹을 지정 .build(); //특정시간.. 2022. 11. 24.
(4) Spring Quartz Sample Quartz Sample build.gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-quartz'Quartz 관련 설정 spring.quartz.properties 하위 속성은 Quartz 관련 Properties 속성 관련 정보 설정 가능 JobStore 속성은 두가지 설정 가능 RAMJobStore : 인메모리 기반의 Job Store로 휘발성 JDBCJobStore : DB 기반의 Job Store로 비휘발성 JDBC 연결을 통해 JobStore를 DB로 지정 가능 spring: quartz: wait-for-jobs-to-complete-on-shutdown: true #종료 시 실행 중인 작업이 .. 2022. 11. 24.
(3) Quartz DB Schema MySQL Table Schema 정보 Spring Quartz JobStore의 정보를 DB에 보관 하기 위해서는 JDBC 연결 설정 해야 한다. Quartz library 내부에 sql 파일 확인 가능 org.quartz.impl.jdbcjobstore.table_[DB종류].sql 테이블명 설명 QRTZ_TRIGGERS 저장된 모든 트리거의 일반 정보 / 트리거의 종류를 구별 QRTZ_JOB_DETAILS Job Detail 객체에 보관된 정보 QRTZ_CRON_TRIGGERS Cron Trigger에 대한 모든 정보를 보관(repeat_count, repeat_interval, times_triggered) QRTZ_SIMPLE_TRIGGERS Simple Trigger에 대한 모든 정보를 보관(.. 2022. 11. 24.
(2) Spring Scheduler vs Quartz Spring Scheduler Spring에 통합된 Scheduler 별도의 구성 없이 Spring Boot Starter 에 포함되어 있음 Annotation 형태로 쉽게 사용 가능 별도의 Schedule 을 변경하거나, 별도의 Clustering 기능 부재 간단한 Schedule 형태에 적용 가능 Scheduler method 반드시 void 형으로 지정 해야 method는 별도의 파라미터를 지정 할 수 없다. Main Thread에 통합 수행되어 하나의 작업이 완료 된 이후 다음 작업이 수행 된다. Code 예시 @EnableScheduling // Annotation 설정으로 초기 구성 완료 @SpringBootApplication public class Application() { public .. 2022. 11. 24.