사용자 도구

사이트 도구


wiki:miscellaneous:크론정리

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
wiki:miscellaneous:크론정리 [2022/06/30 20:03]
emblim98 만듦
wiki:miscellaneous:크론정리 [2023/01/13 18:44] (현재)
줄 42: 줄 42:
 } }
 </code> </code>
 +\\
 +\\
 +<code java>
 +@Test
 +public void 월요정기회의() throws Exception {
 + String cronEx = "0 59 23 ? * 2";
 + int dayOffset = 2;
 +
 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", Locale.getDefault());
 +
 + Calendar cal = Calendar.getInstance();
 + cal.setTime(new Date());
 + log.debug("cal.getTime()=[{}]", cal.getTime());
 + //현재 일시를 cal에 셋팅
 + //cal.getTime()=[2022-07-01T10:52:04.257+0900]
 +
 + cal.add(Calendar.DATE, dayOffset);
 + log.debug("dayOffset=[{}], cal.getTime() after add dayOffset=[{}]", dayOffset, cal.getTime());
 + // 현재 일시에 dayOffset을 더한 결과 
 + //dayOffset=[2], cal.getTime() after add dayOffset=[2022-07-03T10:52:04.257+0900]
 +
 + CronExpression cronExpression = new CronExpression(cronEx);
 + log.debug("cronExpression=[{}]", cronExpression);
 + //String으로 입력된 cronEx를 크론표현식으로 변환
 + //cronExpression=[0 59 23 ? * 2]
 +
 + Date cronDate = cronExpression.getNextValidTimeAfter(cal.getTime());
 + log.debug("cronDate=[{}]", cronDate);
 + //(현재 일시+dayOffset)의 다음에 동작하는 크론 일시 표현
 + //cronDate=[2022-07-04T23:59:00.000+0900]
 +
 + String cronDateStr = dateFormat.format(cronDate);
 + log.debug("cronDateStr=[{}]", cronDateStr);
 + //(현재 일시+dayOffset)의 다음에 동작하는 크론 일시를 위에서 정의한 yyyyMMdd형식으로 출력
 + //cronDateStr=[20220704]
 +
 + String compareDateStr = dateFormat.format(cal.getTime());
 + log.debug("compareDateStr=[{}]", compareDateStr);
 + //(현재 일시+dayoffset)를 위에서 정의한 yyyyMMdd형식으로 출력
 + //compareDateStr=[20220703]
 +
 + log.debug("cronDateStr=[{}] <<>> compareDateStr=[{}]", cronDateStr, compareDateStr);
 + //cronDateStr=[20220704] <<>> compareDateStr=[20220703]
 +
 + boolean compareResult = cronDateStr.equals(compareDateStr);
 + //boolean ret = CrontabUtil.isMatchCronExpression(cronExpression, dayOffset);
 + assertEquals(compareResult, true); // Failure
 +}
 +</code>
 +
  
  
  
 ==== Ref LInk ==== ==== Ref LInk ====
 +[[http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html|QUARTZ-Cron Trigger Tutorial]]\\
 [[https://lng1982.tistory.com/252|CronExpression Test하기]]\\ [[https://lng1982.tistory.com/252|CronExpression Test하기]]\\
 \\ \\
 {{tag> 오션, cron, 크론}} {{tag> 오션, cron, 크론}}
/volume1/web/dokuwiki/data/attic/wiki/miscellaneous/크론정리.1656586994.txt.gz · 마지막으로 수정됨: 2022/06/30 20:03 저자 emblim98