Scheduling
Spring에서 제공하는 스케줄러. 시간에 따른 특정 작업의 순서를 지정하는 방법이다. * 설정 방법. 1. ***Application.java 파일에 @EnableScheduling 어노테이션을 추가. 2. 스케줄링 동작을 위한 클래스를 작성한다. * @Scheduled 속성. 1. fixedDelay : 이전 작업이 끝난 시점으로부터 고정된 시간(ms)을 설정. @Scheduled(fixedDelay = 10000) - 이전 작업이 끝난 후 10초 뒤에 실행 이란 뜻. 2. fixedRate : 이전 작업이 수행되기 시작한 시점으로부터 고정된 시간(ms)을 설정. @Scheduled(fixedRate = 10000) - 이전 작업이 시작된 후 10초 뒤에 실행 이란 뜻. * cron 속성. UNIX계열 잡 스케줄러 표현식으로 작성한다. cron = "초 분 시 일 월 요일 [년도]" ex) 2019년 9월 16일 월요일 10시 30분 20초 cron = "20 30 10 16 9 2" - 연도는 생략 가능하다 - 특수 문자 * : 모든 숫자. - : 두 수 사이의 값. ex) 10-15 => 10이상 15이하. , : 특정 값을 지정. ex) 3,4,7 => 3,4,7 지정. / : 값의 증가. ex) 0/5 => 0부터 5마다. ? : 특별한 값이 없음. (월, 요일만 해당함.) L : 마지막. (월, 요일만 해당함.) @Scheduled(cron = "0 * * * * *") => 모든 0초마다. (== 매 분마다 실행.) 요일의 표현. 1(SUN) ~ 7(SAT). ex) @Scheduled(cron = "0,30 * * * * *") 시계 초 단위가 0, 30인 경우 수행. @Scheduled(cron = "0,15,30,45 * * * * *") 시계 초 단위가 0, 15, 30, 45 인 경우 수행. @Scheduled(cron = "0 0 * * * *") 매 시간(정시)마다 수행. @Scheduled(cron = "0 0 0 * * *") 자정마다 수행. @Scheduled(cron = "0 0 12 * * *") 정오마다 수행. @Scheduled(cron = "0 0 0 1 * *") 매달 1일마다 수행.