어떤 서비스를 만들었는데

 

이 서비스에는 날짜가 바뀌기 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분 마다

 

등등 위와 같이 여러가지 형식대로 설정이 가능함

 

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기