@Scheduled

2022. 7. 19. 14:39OpenSource/Spring Boot

반응형

@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을 따른다.

반응형