@Scheduled
@Scheduled 어노테이션은?
말그대로 스케쥴링 즉, 주기적인 작업이 있을 때 사용한다.
마치 리눅스의 crontab과 같다.
사용법
우선 사용하려고 하면 @EnableScheduling 선언이 필요하다.
그리고 수행할 메소드위에 선언하여 사용하면 된다.
@Scheduled(initialDelayString = "6000", fixedDelayString = "6000")
protected void scheduledReloadAllGraphs() {
log.debug("reloadAllGraph");
reloadAllGraphsMono().subscribe();
}
속성
cron : cron 표현식을 지원한다.
ex) @Scheduled(cron="* * * * * *")
초/분/시/일/달/주
2016.11.11 - [OS/Linux&Unix] - Crontab을 이용해보자!
fixedDelay : millisecondes 단위로, 이전 작업이 끝난 시점으로부터 고정된 시간을 설정한다.
ex) fixedDelay = 5000
위처럼 5초 딜레이가 있기 때문에 작업(메소드)이 끝나고 5초 후에 다음 작업(메소드)을 수행한다.
fixedDelayString : fixedDelay와 같은 기능이지만 문자열로 넣는다는 점이 다르다.
ex) fixedDelayString = "5000"
fixedRate: milliseconds 단위로 이전 작업이 수행되기 시작한 시점으로부터 고정된 시간을 설정한다.
일정한 비율(주기)마다 메소드를 호출!
fixedRateString: fixedRate와 같은 기능이지만 문자열로 넣는다는 점이 다르다.
initialDelay : 스케줄러에서 메서드가 등록되자마자 수행하는 것이 아닌 초기 지연시간을 설정한다.
initialDelayString : 위와 마찬가지로 문자열 가능!
zone : cron표현식을 사용했을 때 사용할 time zone으로 따로 설정하지 않으면 default로 서버의 time zone을 따른다.