반응형
@EnableScheduling와 @Schedule를 활용한 스케쥴링 작업
서버 실행 하는 클래스에 @EnableScheduling을 아래와 같이 붙여 준다.
일정 시간대나 또는 일정 시간 마다 실시하려는 작업을 수행할 클래스를 아래와 같이 작성해준다. 해당 클래스에는 @Component를, 실질적으로 작업을 수행하는 메서드에는 @Scheduled(cron="[cron식]")을 붙여준다.
또는 fixedRate를 통해 일정 시간마다 작업이 수행되도록 할 수 있다. 아래의 경우 5초마다 반복하여 'fixed rate 5000------'를 출력한다.
Q) @EnableScheduling는?
스프링 프레임워크에서 제공하는 어노테이션으로 @Scheduled가 붙은 메서드인 경우 스케쥴 작업을 활성화하여 준다. 어플리케이션의 main 클래스에 해당 어노테이션을 붙여주면 스프링 컨텍스트에 스케쥴링을 관리하기 위한 백그라운드 스레드 풀이 실행된다.
Q) 클래스에 @Component를 붙이는 이유?
스케쥴링 관련 작업은 스프링 컨텍스트에 의해 백그라운드 스레드 풀에서 실행되기 때문에, 스케쥴링 작업을 작성하려는 클래스는 스프링 컨텍스트에 의해 관리될 수 있도록 빈에 등록되어야 한다. 때문에 @Component 어노테이션을 붙여준다.
반응형
'JAVA > Spring Boot' 카테고리의 다른 글
[ Spring boot ] 서버 실행 시 애플리케이션 초기화 로직 실행 코드 구현 (0) | 2023.08.10 |
---|---|
[ Java ] - SMS 전송하기 (feat. naver cloud platform) (0) | 2023.05.17 |
[ Spring Boot ] - swagger 적용 (0) | 2023.05.15 |
[ Spring Boot ] - HTTP 요청 관련 어노테이션 (0) | 2023.04.29 |
spock 사용법(테스트 코드 작성) (0) | 2023.02.23 |