Scheduling을 위해서 while(true)로 무한으로 돌린 후, sleep을 이용하거나 linux의 crontab으로 주기적으로 실행하는 방법을 이용할 수 있겠지만 Spring Framework에서는 crontab을 내장해서 사용하는 듯한 매우 편리한 방법을 제공한다.
Scheduler를 사용하기 위해서는 Spring Task라는 내장되어 있는 기능을 사용하면 된다. 예전에는 쿼츠(Quartz)를 많이 활용하기도 하였으나, 해당 기능이 더 편리한 점이 있다.
Scheduling을 원하는 Method에 @Scheduled라는 어노테이션을 붙이고, Scheduling을 설정하면 된다. Schedule은 Cron Tab과 같은 방식을 제공하니 Crom Tab이 편리하다면 Cron Tab 방식을 사용하면 된다.
// 실행된 Task의 종료 시간으로부터 지정된(ms 단위) 시간이 지난 후 실행
@Scheduled(fixedDelay=3000)
public void fixedDelay(){
System.out.println("Delay 3000");
}
// 실행된 시간으로부터 지정된(ms) 시간이 지난 후 실행
@Scheduled(fixedRate=3000)
public void fixedRate(){
System.out.println("Delay 3000");
}
// 5초마다 실행
@Scheduled(cron = "*/5 * * * * *")
public void cronTab(){
System.out.println("Delay 5000");
}
상세 설정방법은 아래 문서 참조