230403 TIL #49 @Scheduling

김춘복·2023년 4월 3일
0

TIL : Today I Learned

목록 보기
49/571

230403 Today I Learned

실전 프로젝트 3일차. 집중해야될 것만 집중하기로 하고 서비스 바운더리를 줄였다.


@Scheduling

  • 정해진 시간에 지정된 메서드를 실행해주는 어노테이션. @EnableScheduling을 application 클래스 위에 달아줘야 한다.

  • 매일 자정에 작동하는 메서드

  @Scheduled(cron = "0 0 0 * * ?")  // 매일 자정 작동.
  public void updateTicketInfoAtMidnight() {
    List<TicketInfo> ticketInfos = ticketInfoRepository.findAll();
    for (TicketInfo ticketInfo : ticketInfos) {
      LocalDate eventDate = ticketInfo.getEvent().getDate();
      if (LocalDate.now().isAfter(eventDate)) {
        ticketInfo.setAvailable(false);
      }
      ticketInfoRepository.saveAll(ticketInfos);
    }
  }
  • @Scheduled(cron = "0 0 0 * * ?") 에서 corn?

cron 표현식은 6개의 필드로 구성된다.
초 (0-59)
분 (0-59)
시 (0-23)
일 (1-31)
월 (1-12)
요일 (0-7, 일요일이 0과 7)
*을 넣으면 매번 실행된다는 뜻.

(cron = "0 0 0 * * ?")는 0초 0분 0시 매일 매월(요일필드는 사용하지않음)에 동작된다는 뜻.

profile
Backend Dev / Data Engineer

0개의 댓글