어떤 작업에 대해서 지정된 기간 혹은 시간에 수행하도록 하는것
사용법
@SpringBootApplication
@EnableScheduling
public class WeatherApplication {
public static void main(String[] args) {
SpringApplication.run(WeatherApplication.class, args);
}
}
@Transactional
@Scheduled(cron = "0 0 1 * * *")
public void saveDateWeather(){
dateWeatherRepository.save(getWeatherFromApi());
}
스케줄 설정방법
조건
@Scheduled(cron = "5 * * * * *")
public void something() {
}
@Scheduled(cron = "5 * * * * *", zone="Asia/Seoul")
public void something() {
}
@Scheduled(fiexedDelay=1000L) // 이전 something() 수행 완료 후 1초 뒤에 다시 시작
public void something() {
}
@Scheduled(fixedRate=1000L) // 매 1초마다 something() 수행
public void something() {
}
@Scheduled(initialDelay=1000) // App 실행 완료 후 1초 후에 something 잡이 수행됨.
public void something() {
}
| 초 | 0-59 |
| 분 | 0-59 |
| 시 | 0-23 |
| 일 | 1-31 |
| 월 | 1-12 || JAN-DEC |
| 요일 | 0-6 || SUN-SAT |
| 연도 | 1970-2099 |
-* 모든 수
-? 조건 없음 (날짜와 요일에만 사용)
-- 범위(기간) 지정
-, 특정 여러 시간 지정
-/ 시작 시간과 반복 간격
-L 지정할 수 있는 범위의 마지막 값 (날짜와 요일에만사용)
예를들어
scheduler.test=0 0 0 * * *
@Scheduled(cron = "${scheduler.test}")
public void Scheduling(){