어떤 서비스를 만들었는데
이 서비스에는 날짜가 바뀌기 5분 전 매일 23시 55분에 고객들의 서비스 사용 데이터를 정리하고
정리한 내용을 서비스 회원들에게 메신저 or 메일을 통해 보내주는 기능을 만든다고 했을 때
@Scheduled 을 이용해서 간단하게 스케줄링을 구현할 수도 있다.
이 어노테이션을 사용하면 지정된 주기나 시간에 따라 메서드를 실행시킬 수 있다
우선 이 기능을 서비스에서 사용하기 위해서 @EnableScheduling 어노테이션을
스프링부트 애플리케이션에 붙여준다.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
@SpringBootApplication
public class ExampleApplication {
public static void main(String[] args) {
SpringApplication.run(ExampleApplication.class, args);
}
}
그 다음에 스케줄링을 사용할 메서드에 @Scheduled 을 붙여준다.
이 어노테이션을 통해 메서드를 실행할 주기나 시간 등을 지정할 수 있음
import org.springframework.scheduling.annotation.Scheduled;
@Scheduled(cron = "0 55 23 * * *") // 매일 오후 11시 55분에 실행
public void sendOrganizedData() {
// 데이터를 정리하고 메신저나 메일로 발송하는 기능을 동작하는 코드 or 메서드
}
cron = "지정할 시간 형식"은
초 (0-59) 분 (0-59) 시 (0-23) 일 (1-31) 월 (1-12 또는 JAN-DEC) 요일 (0-7 또는 SUN-SAT, 0과 7은 SUN과 같음)
원하는 시간을 설정하여 세팅하면 되고
cron = "0/30 * * * *" => 30초 마다
cron = "0 10,40 * * *" => 매 시간 10분,40분 마다
cron = "0 0/15 9-18 * MON-FRI" =>. 월~금 (토,일 제외) 오전 9시 부터 오후 6시 사이 15분 마다
등등 위와 같이 여러가지 형식대로 설정이 가능함
'Spring' 카테고리의 다른 글
Spring @RequestParam 스프링 리퀘스트파람 컨트롤러 요청 URL 쿼리스트링 필수 값이 아니게 설정 (0) | 2023.08.26 |
---|---|
Spring Boot 스프링 부트 dev tools 개발 생산성 향상을 위한 개발 도구 설정, 애플리케이션 자동 재시작, 브라우저 자동 새로고침 (0) | 2023.06.04 |
Spring MVC패턴 실행순서 / 구조 (0) | 2022.05.01 |
Spring 스프링 (Legacy) 환경설정 [MVC] (0) | 2022.02.20 |
최근댓글