@Scheduled 어노테이션
주기적으로 해야되는 작업을 쉽게 적용할 수 있도록 도와주는 어노테이션
스프링 3.1 이상부터 지원
@Scheduled 사용 준비
@SpringBootApplication 어노테이션이 있는 어플리케이션 자바 파일에 @EnableScheduling 어노테이션 추가
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Scheduled 사용
1. cron
cron 표현식을 지원
초 분 시 일 월 주(년) 순으로 표기
@Scheduled(cron = "0 0 9 * * *") //매일 9시마다
public void TestScheduler(){
System.out.println("테스트");
}
초 | 0 ~ 59 |
분 | 0 ~ 59 |
시 | 0 ~ 23 |
일 | 1 ~ 31 |
월 | 1 ~ 12 |
요일 | 1 ~ 7 (1 => 일요일, 7=> 토요일) |
년도 | 1970 ~ 2099 |
* : 모든 값
? : 특정 값 없음
- : 범위 지정에 사용
, : 여러 값 지정 구분에 사용
/ : 초기값과 증가치 설정에 사용
L : 지정할 수 있는 범위의 마지막 값
W : 월~금요일 또는 가장 가까운 월/금요일
# : 몇 번째 무슨 요일 2#1 => 첫 번째 월요일
사용 예시
"0 0 02 * * ?" : 매일 새벽 두시
"0 0 12 * * ?" : 매일 정오
"0 15 10 ? * *" : 모든 요일, 매월, 아무 날이나 10:15:00
"0 15 10 * * ? *" : 모든 연도, 아무 요일, 매월, 매일 10:15
"0 0/5 14,18 * * ?" : 아무 요일, 매월, 매일, 14시, 18시 매 5분마다 0초
"0 0-5 14 * * ?" : 아무 요일, 매월, 매일, 14:00 부터 매 14:05까지 매 분 0초
"0 10,30 14 ? 6 WED" : 6월의 매 수요일, 아무 날짜나 14:10:00, 14:30:00
"0 15 10 L * ?" : 아무 요일, 매월 마지막 날 10:15:00
"0 15 10 ? * 7L" : 매월 마지막 토요일 아무 날이나 10:15:00
"0 15 08 ? * 6L 2002-2005" : 2002년부터 2005년까지 매월 마지막 금요일 아무 날이나 0815:00
"0 15 08 ? * 6#3" : 매월 3번째 금요일 아무 날이나 08:15:00
2. fixedDelay
해당 메소드가 종료된 시점부터 다음 메소드 실행 시점까지의 주기
시간 단위는 밀리세컨드
@Scheduled(fixedDelay=1000)
public void TestScheduler(){
System.out.println("테스트");
}
3. fixedRate
해당 메소드가 시작된 시점부터 다음 메소드 실행 시점까지의 주기
시간 단위는 밀리세컨드
@Scheduled(fixedRate=1000)
public void TestScheduler(){
System.out.println("테스트");
}
참고 사이트
https://toma0912.tistory.com/17
https://jeong-pro.tistory.com/186
https://java119.tistory.com/34
https://javafactory.tistory.com/1386
'Spring > 개인 공부' 카테고리의 다른 글
[AWS] Amazon S3(Amazon Simple Storage Service)란? (0) | 2022.06.07 |
---|---|
[아임포트/spirng boot] 다날 SMS 본인인증 페이지 띄우기+access 토큰 전달 API 개발하기 (3) | 2022.05.28 |
[FCM] Firebase Cloud Messaging이란? aka 푸시 알림, 앱 알림 (0) | 2022.05.07 |
[Spring] Jackson 직렬화 Annotation 정리 (0) | 2022.04.09 |
[Data JPA] 페이징 처리 aka pagination, sorting, pageable (0) | 2022.03.31 |