본문 바로가기
프로그래밍

CronExpression Test 하기

by 탁구치는 개발자 2016. 3. 17.

Quartz 사용 시 cron expression에 정의한 시간에 정상 동작하는지를 체크해야 할 경우가 있다

단순한 방법으로는 테스트 하고자 하는 시간으로 표현식을 설정하고 그 시간에 스케줄링이 동작하는지 확인해 보면 되지만 이는 무식한 방법이다.


간단하게 quartz에서 제공하고 있는 CronExpression 클래스를 이용하여 테스트 가능하다.

@Test
public void cronTimeTest() throws ParseException {
       // 매일 9, 12, 18시 정각에 스케줄링 동작
       String cronEx = "0 0 9,12,18 * * ?";
       CronExpression cronExpression = new CronExpression(cronEx);

       Date nextTime1 = cronExpression.getNextValidTimeAfter(new Date());
       Date nextTime2 = cronExpression.getNextValidTimeAfter(nextTime1);
       Date nextTime3 = cronExpression.getNextValidTimeAfter(nextTime2);
       Date nextTime4 = cronExpression.getNextValidTimeAfter(nextTime3);

       System.out.println(nextTime1);
       System.out.println(nextTime2);
       System.out.println(nextTime3);
       System.out.println(nextTime4);
}


[출력결과]

Thu Mar 17 18:00:00 KST 2016

Fri Mar 18 09:00:00 KST 2016

Fri Mar 18 12:00:00 KST 2016

Fri Mar 18 18:00:00 KST 2016