Class QuartzJobConfig

java.lang.Object
com.easydesk.web.scheduler.QuartzJobConfig

@Configuration(proxyBeanMethods=false) public class QuartzJobConfig extends Object
Quartz job / trigger 등록. Scheduler 자체는 spring-boot-starter-quartz 의 자동 설정(QuartzAutoConfiguration)이 만들고 (설정: application.yml 의 spring.quartz.*), 컨텍스트에 있는 JobDetail / Trigger 빈을 전부 자동으로 등록한다. Scheduler 는 모든 싱글톤 빈 생성이 끝난 뒤(SmartLifecycle start) 시작되므로, SecurityServiceConfig 의 Torque 초기화가 끝난 뒤에 job 이 돈다. (거기에 spring.quartz.startup-delay 만큼 더 기다린다) 새 job 추가 방법: 1. EasyDeskJob 을 상속한 클래스를 만들고 executeJob() 을 구현한다. (system 사용자 context 가 바인딩된 상태로 호출됨. 다른 빈이 필요하면 생성자로 주입받으면 된다) 같은 job 이 겹쳐 돌면 안 되면 @DisallowConcurrentExecution 을 붙인다. 2. 아래 HeartbeatJobConfig 처럼 JobDetail(storeDurably) + Trigger 빈을 등록한다. on/off, cron 은 app.scheduler.<job>.* 속성으로 빼 둔다. cron 은 Quartz 형식(초 분 시 일 월 요일 [년])이고 JVM 기본 timezone 기준이다. 예) 매일 02:00 = "0 0 2 * * ?" Job store 는 메모리(RAMJobStore)라 앱을 내리면 스케줄 상태는 사라지고, 기동할 때마다 이 설정으로 다시 등록된다.
  • Field Details

  • Constructor Details

    • QuartzJobConfig

      public QuartzJobConfig()
  • Method Details

    • jobRunHistoryCustomizer

      @Bean public org.springframework.boot.autoconfigure.quartz.SchedulerFactoryBeanCustomizer jobRunHistoryCustomizer(JobRunHistory jobRunHistory)
      모든 job 의 마지막 실행 결과를 기록하는 전역 JobListener 등록 (관리 화면 "Schedule Job 관리" 에서 사용).