카테고리 없음

스프링 Scheduled

pakms980319 2024. 5. 13. 10:07

@Scheduled

Spring 에서 @Scheduled 어노테이션을 사용하면 일정한 시간 간격으로, 혹은 특정 시간에 코드가 실행되도록 설정할 수 있다. (fixedRate, cron)

 

먼저 Scheduled 를 설정하려면 설정 파일이 위치한 패키지를 root-context.xml 에 component-scan 을 등록해줘야한다.

 

root-context.xml

 

스케줄링을 작업할 클래스에는 @Component 어노테이션을 사용하여 bean 등록을 하고 @EnableScheduling 어노테이션을 사용하여 스케줄링 설정 작업을 준비한다

 

 

이후 사용할 메서드에는 @Scheduled(...) 어노테이션을 달아준다

 

 

 

 

 

 

 

1) fixedRate

fixedRate 는 작업 수행시간과 상관없이 일정 주기마다 메서드를 호출한다.

 

Scheduling.java

 

 

1초마다 t1() 메서드가 실행되고 있다

 

 

 

 

2) cron

 

 

t2 메서드는 20초마다 실행되게 된다

 

cron 작성방법

 

초(0-59)  분(0-59)  시(0-23)  일(1-31)  월(1-12)  요일(0-6)
매 초마다 실행: "* * * * * *"
매 시간의 30분마다 실행: "0 30 * * * *"
매일 오전 8시 30분마다 실행: "0 30 8 * * *"
매주 월요일 아침 9시 30분마다 실행: "0 30 9 * * 1"
매월 1일 아침 4시 30분마다 실행: "0 30 4 1 * *"
매주 월요일부터 금요일까지 아침 10시마다 실행: "0 0 10 * * 1-5"