QUARTZ 스케쥴러의 테이블 중 QRTZ_TRIGGERS 테이블에는 트리거의 PREV_FIRE_TIME(이전 수행시간), NEXT_FIRE_TIME(다음 수행시간), START_TIME(시작시간) 등이 저장되어 있다.
하지만 데이터가 1970-01-01부터 경과한 밀리세컨드 형식으로 들어가 있기 때문에 해당 컬럼의 데이터를 조회하기 위해서는 아래 쿼리처럼 데이터를 조회해야 한다.
SELECT
TRIGGER_NAME
, TO_CHAR(TO_DATE('19700101', 'yyyymmdd') + (PREV_FIRE_TIME/(24*60*60*1000) + 9/24), 'yyyy/mm/dd hh24:mi:ss') AS PREV_FIRE_TIME
, TO_CHAR(TO_DATE('19700101', 'yyyymmdd') + (NEXT_FIRE_TIME/(24*60*60*1000) + 9/24), 'yyyy/mm/dd hh24:mi:ss') AS NEXT_FIRE_TIME
, TO_CHAR(TO_DATE('19700101', 'yyyymmdd') + (START_TIME/(24*60*60*1000) + 9/24), 'yyyy/mm/dd hh24:mi:ss') AS START_FIRE_TIME
FROM QRTZ_TRIGGERS
쿼리 중 각 컬럼에 9/24를 더해준 이유는
1970-01-01부터 경과한 밀리세컨드는 UTC 기준인데, 해당 시간은 한국 시간(KST)보다 9시간 느리기 때문에 한국시간으로 변환하기 위해서는 9/24를 더해줘야 한다.
참고
http://vilaspaskanti.blogspot.com/2013/04/java-quartz-scheduler-next-fire-time-in.html
'IT > SpringBoot' 카테고리의 다른 글
Spring Batch 기동 시 JOB 상태를 STARTED에서 FAILED 로 변경하기 (0) | 2022.03.17 |
---|---|
SqlSessionFactoryBean setMapperLocations에 mapper.xml 여러 개 등록하기 (1) | 2022.03.17 |
[에러 해결]jackson-dataformat-yaml 사용 시 java.lang.NoClassDefFoundError 및 java.lang.NoSuchMethodError 에러 해결 (0) | 2021.06.08 |
스프링부트 Gradle 버전 변경하기 (0) | 2020.04.05 |
스프링부트에 log4j2 적용하기(gradle, log4j2.yml 활용) (0) | 2020.03.29 |
댓글