본문 바로가기
개발 이야기/Springboot

Spring_@Scheduled 사용하기

by 농개 2018. 5. 25.
반응형

프로젝트에서 배치 돌려야 할 경우가 자주 발생 한다. SpringFrameWork에서 제공하는 @Scheduled 를 사용하면 원하는 시간대에 특정 서비스를 동작시킬 수 있다.

 

먼저, 아래와 같이 context 설정 파일에 scheduler를 등록한다.

 

1
2
3
4
5
6
<context:component-scan base-package="com.test.schedule"></context:component-scan>
 
<task:scheduler id="taskScheduler"/>
<task:executor id="taskExecutor" pool-size="5" />
<task:annotation-driven executor="taskExecutor" scheduler="taskScheduler" />
 
cs

 

그리고 com.test.schedule 패키지에 java파일 하나 만들고, @Service와 @Scheduled 어노테이션을 써서 서비스를 등록한다.

 

1
2
3
4
5
6
7
8
@Service
public class ScdMain {
  @Scheduled(cron = "0 5 18 * * ?")
  public void task() throws Exception{
    // To Do ..
  }
}
 
cs

 

위의 서비스는 매일 18시 05분에 실행될 것이다.

 


주기설정 : 

  1. 초 : 0
  2. 분 : 0-59
  3. 시 : 0-23
  4. 일 : 1-31
  5. 월 : 1-12
  6. 요일 : 0-6(0:일요일, 6: 토요일)

위의 cron = "0 5 18 * * ?" 가 매일 18시 05분 를 뜻한다.

반응형