Spring Boot에서 @Scheduled 어노테이션을 사용하면 일정한 시간 간격 또는,
특정한 시간에 코드 발동.
@EnableScheduling //이 어노테이션이 있어야 한다.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Service
@RequiredArgsConstructor
public class Service {
@Scheduled(cron = "01 * * * * ?", zone = "Asia/Seoul")
public void test(){
LocalDateTime time = LocalDateTime.now(ZoneOffset.UTC);
System.out.println(time);
}
}
크론 표현식 '0 * * * * ?' 작업이 매분 0초에 실행되어야 한다는 뜻.
//매일 오전 9시 발동
@Scheduled(cron = "0 0 09 * * ?", zone = "Asia/Seoul")
public void test(){
System.out.println("--");
}
//매일 1, 15일 오전 9시 발동
@Scheduled(cron = "0 0 09 1,15 * ?", zone = "Asia/Seoul")
public void test(){
System.out.println("--");
}
//매일 출근시간 사이에 5분 간격 발동
@Scheduled(cron = "0 0/5 9-18 * * ?", zone = "Asia/Seoul")
public void test(){
System.out.println("--");
}
이런 식으로 예시가 정말 많다.
Method는 void 타입 사용하기.