@Scheduled
java Spring 환경에서 @Scheduled 어노테이션을 사용하여 메소드의 실행 시간/주기를 설정할 수 있다.
설정 표현식으로 cron, fixedDealy, fixedRate 등을 사용할 수 있다.
(Spring 3.1 이상부터 지원)
Cron 표현식
@Scheduled(cron = "* 30 12 * * *")
좌측부터 "초 분 시 일 월 년"을 나타내며 위의 식은 매 12시 30분을 의미한다.
순서 | 필드 | 값 |
1 | seconds(초) | 0 ~ 59, -, *, / |
2 | minutes(분) | 0 ~ 59, -, *, / |
3 | hours(시) | 0 ~ 23, -, *, / |
4 | day of month(일) | 1 ~ 31, -, *, /, ?, L, W |
5 | month(월) | 1 ~ 12, -, *, / |
6 | day of week(요일) | 1 ~ 7, -, *, /, ?, L, # |
7 | years(년도 optional) | 1970 ~ 2099, -, *, / |
특수문자
문자 | 의미 |
* | 모든 수 |
- | 기간 설정 |
/ | 시작시간과 반복시간 설정 |
? | 해당 항목을 사용하지 않음 |
L | 마지막 기간에 동작 (day of month, day of week에서만 동작) |
W | 가장 가까운 평일에 동작 (day of week에서만 동작) |
LW | 그 달의 마지막 평일에 동작 |
# | 요일과 몇 번째 주인지 설정 (1#3 세 번째 주 월요일) |
fixedDealy & fixedRate
@Scheduled(fixedDealy = 1000)
메소드 실행이 종료된 시점에서 1초에 한번 실행한다.
@Scheduled(fixedRate = 1000)
메소드 실행이 시작된 시점에서 1초에 한번 실행한다.
'Java > Spring' 카테고리의 다른 글
[Spring] Spring MVC Interceptor (0) | 2024.06.24 |
---|---|
Spring Legacy Project part 3. (Controller의 Parameter 전달) (0) | 2021.02.28 |
Log4j error (org.apache.log4j.Logger cannot be resolved to a type) (0) | 2021.02.27 |
Spring Legacy Project part 2. (JUnit Test) (0) | 2021.02.26 |
Spring Legacy Project part 1. (Lombok, DI) (0) | 2021.02.24 |