Post

Backend - Spring boot @Scheduled cron 표현식에 대해 알아보자.

Backend - Spring boot @Scheduled cron 표현식에 대해 알아보자.

오늘은 Spring에서 @Scheduled 어노테이션을 사용할 때 주로 사용하는 cron 표현식에 대해서 알아보자.

들어가기에 앞서 @Scheduled에 대해 간략하게 알아보자.

@Scheduled란?

@Scheduled는 Spring에서 스케줄링을 설정할 때 사용하는 어노테이션으로, 설정된 시간마다 반복적으로 호출되는 로직을 정의한다.

주로 통계 데이터를 수집, 알림 발송 등 반복적인 작업에 사용된다.

cron@Scheduled의 동작 시점을 정의하는 방법 중 하나이다.

cron 표현식 구조

cron 표현식의 구조는 아래와 같다.

1
초 분 시 일 월 요일 연도(옵션)

@Scheduled 에서는 주로 6자리까지만 사용한다.(연도를 넣지 않음)

사용 예시 1

1
@Scheduled(cron = "0 0 1 * * ?") 
  • ?: 무시
  • *: 전체

위 예시대로 설정했을 경우 스케줄링 작업은 매월, 매일 새벽 1시에 스케줄링 작업이 실행된다.

?는 일이나 요일 자리에만 사용 가능하다.
둘 중 하나를 명확히 지정했으면, 나머지 하나에는 ?로 “무시”를 명시해야 한다.

사용 예시 2

1
@Scheduled(cron = "0 */10 * * * ?")
  • */n: 0부터 n 단위로 반복

위 예시대로 설정했을 경우, 매시간마다 10분 간격(0분, 10분, 20분…)으로 스케줄링 작업이 실행된다.

@Scheduledcron 외에도 fixedRate, fixedDelay 방식으로도 주기 설정이 가능하다.

This post is licensed under CC BY 4.0 by the author.