본문 바로가기
SPRING/@Scheduled 설정

스프링 @Scheduled 설정

by 정윤재 2011. 7. 10.

스프링에서 간편하게 프레임워크안에서 스케쥴링 하던 quartz 를

annotation 으로 더 간단하게 설정 할 수 있게 되었다.

방법은

1. applicationContext.xml 같은 bean 을 설정하는 곳에서
    아래의 굵은 부분과 같이 설정 해 준다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="
http://www.springframework.org/schema/beans"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="
http://www.springframework.org/schema/context"
xmlns:task="
http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd">

<context:component-scan base-package="com.incross"/>
<!-- ************* schedule demon********************** -->
<task:annotation-driven/>
<!-- ************************************************** -->

</beans>

=============================================================
2. 스케쥴링을 할 메소드위에  @Scheduled 어노테이션을 설정해준다.
     - @Scheduled(cron=" ~~~~") => 크론탭과 같은 설정 방법
     - @Scheduled(fixedDelay=1000) => 몇 초 마다 실행할지 주기 정하기 
                                                   1/1000 초

@Service
public class C2dmJobDemon {
 
 @Autowired
 public C2dmService c2dmService;
 
 private static final Logger logger  =  Logger.getLogger(C2dmJobDemon.class);
 
 @Scheduled(cron="1,2,3,4,5 * * * * ?")
 
//@Scheduled(fixedDelay=1000)
 public void doC2dmSchedulerDemon() throws Exception {
  String USER_ID    = "shonm";
  
  UserDTO dto     = (UserDTO) c2dmService.UserServiceTest(USER_ID);
  
  System.out.println("scheduler test :::::"+dto.getUSER_ID());
 }
}


댓글