IT/SpringBoot

QUARTZ 스케쥴러에서 PREV_FIRE_TIME, NEXT_FIRE_TIME, START_TIME 조회하기

twofootdog 2022. 3. 3. 00:22

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

 

Java Quartz Scheduler Next Fire Time in Date Format (DD-MM-YYYY HH:MM:SS) format

QUARTZ  is a powerful and advance scheduler framework, to help Java developer to schedule a job to run at a specified date and time. Qua...

vilaspaskanti.blogspot.com