2012/09/05 22:40

Spring Scheduler 사용하기. Spring



전엔 Quarts를 이용해서 스케줄 등록을 통해 배치프로그램을 실행시켰다.
아니,
그 이전에는,, 아니 지금도 대부분은 윈도우, 유닉스에서 
스케줄을 통해 배치프로그램을 통해 실행시키는게 대부분이다.

그런데 스프링에서 스케줄 관리를 해준다.
그리고 어노테이션도 사용할 수 있다.. 대박~



1. 설정 
아래와 같이 스키마 추가. 
--------------------
xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
--------------------

아래와 같이 설정 추가. 
특별히 이름의 의미는 없다. 그냥 그대로 쓰면 된다.
스케줄러 10개, 실행 10개라고 생각하면 될 듯.. (솔직히 정확한 의미는 모르겠다;; 대충;;)
--------------------
    <task:scheduler id="taskScheduler" pool-size="10" />
    <task:executor id="taskExecutor" pool-size="10"/>
    <task:annotation-driven executor="taskExecutor" scheduler="taskScheduler"/>
--------------------


2. 클래스에서 실행.
--------------------
//10:40분 (cron="0 40 10 ? * THU")
@Scheduled(cron="10 11 22 ? * WED")
public void sendMail_THU(){
sendMail("PM", "A", "");
}
--------------------
크론을 이용해서 언제 보낼지를 정할 수 있다. 



@Async도 있고 그렇지만,
빨리 퇴근하고 싶은 마음에.. 여기까지만.. 

저거 엄청 편하다. 
Quarts를 사용하면 실제 서비스 호출시 null point 에러가 난다.
(어노테이션을 이용해서 구현된 경우)
왜냐면 Quarts와 Spring이 다른 Singleton에서 돌아가기 떄문이다.

그래서 위와 같이 어노테이션을 이용해서 스프링에서
스케줄을 관리하도록 하면, 
웹에서 사용하는 것과 동일하게 
어노테이션만으로도 모든 서비스를 사용할 수 있게 된다. 

얼마나 좋은가~~~ 

동감하는 분들이 있었으면 좋겠다..ㅋㅋ;;

아 퇴근해야지ㅣ..
다음주 오픈이라 정신이 하나도 읍따.. 에효.. 

덧글

댓글 입력 영역