정해진 간격이나 시각에 자동으로 로직을 실행
아래와 같은 설정 클래스를 만들어 스케줄링을 활성화할 수 있다.
@Configuration
@EnableScheduling
public class SchedulingConfig {
}
필요할 때 그때그때 찾아서 쓰기
// 매 5초마다
@Scheduled(cron = "*/5 * * * * *")
public void task() {
}
// 매일 오전 9시
@Scheduled(cron = "0 0 9 * * *")
public void task() {
}
// 평일 오전 9시
@Scheduled(cron = "0 0 9 * * MON-FRI")
public void task() {
}
초(0~59) 분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0~7 또는 SUN-SAT)
*: 모든 값 (매 초, 매 분, 매 시 등)*/n*: 주기, 간격 (n 단위마다 반복),: 지정 나열 (예: 1, 15, 30: 1, 15, 30에 실행)-: 범위 (예: MON-FRI: 월요일부터 금요일까지)서버는 한 대가 아닐 수 있다. 스케줄링 시 여러 서버에서 같은 로직이 호출된다면?
@Scheduled는 애플리케이션 인스턴스 내부의 메모리 타이머로 동작