● @Scheduled
일정한 시간 간격으로, 혹은 특정 시간에 코드가 실행되도록 설정할 수 있다.
bath는 여러 작업이 순차적으로 처리되는데 scheduled는 특정 작업을 특정 시간에 단순하게 처리한다.
● @Scheduled 속성
fixedRate : 작업 수행시간과 상관없이 일정 주기마다 메소드를 호출
fixedDelay : (작업 수행 시간을 포함하여) 작업을 마친 후부터 주기 타이머가 돌아 메소드를 호출
initialDelay : 스케줄러에서 메소드가 등록되자마자 수행하는 것이 아닌 초기 지연시간을 설정
cron : Cron 표현식을 사용하여 작업을 예약
< 실습하기 >
12 프로젝트를 복사해서 13_Sceduled 프로젝트를 만들어준다.
src/main/java에 Scheduled라는 패키지를 새로 만들고 그 안에 Scheduling이라는 클래스를 만들어준다.
그리고 root-context.xml로 가서 빈등록을 위해 scheduled context를 만들어 준다.
( 등록할때는 패키지 이름과 동일하게 해줘야 한다. ex.소문자/대문자 구분 )
@EnableScheduling을 선언하여 스케줄링을 활성화 시키고 빈 내부 메서드에 @Scheduled를 추가하면 간단히 스케줄링 작업을 추가 할 수 있다.
실행하면 1초마다 sysout이 출력된다.
이번에는 cron식을 활용하여 20초마다 sysout이 출력되도록 할 것이다.
cron="초 분 시 일 월 요일" 순으로 적으면 된다.
● cron 표현식
- 초(0-59) 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6)
- 매 초마다 실행: "* * * * * *"
- 매 시간의 30분마다 실행: "0 30 * * * *"
- 매일 오전 8시 30분마다 실행: "0 30 8 * * *"
- 매주 월요일 아침 9시 30분마다 실행: "0 30 9 * * 1"
- 매월 1일 아침 4시 30분마다 실행: "0 30 4 1 * *"
- 매주 월요일부터 금요일까지 아침 10시마다 실행: "0 0 10 * * 1-5"
'IT수업 > STS3' 카테고리의 다른 글
IT 수업 21주차 (141) Security 2 (0) | 2024.05.13 |
---|---|
IT 수업 21주차 (140) Security (0) | 2024.05.13 |
IT 수업 20주차 (138) Handler Mapping (0) | 2024.05.10 |
IT 수업 20주차 (137) Listener (0) | 2024.05.10 |
IT 수업 20주차 (136) Filter and Interceptor (0) | 2024.05.10 |