티스토리 뷰
Spring scheduler를 이용하여 주기적인 Processing을 처리할 일이 생겼습니다.
예전같으면 linux scheduler인 crontab에 등록하여 실행할 script를 처리하여 작성했지만 이번프로젝트는 처음으로 java를 이용한
스케쥴러를 구현하게 되었습니다.
step1. applicationContext 설정
scheduler 및 annotation을 위한 설정을 합니다.
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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/task http://www.springframework.org/schema/task/spring-task.xsd"> ... <!-- Activates @Scheduled and @Async annotations for scheduling --> <task:annotation-driven /> </beans>
step2. scheduler 적용
@Scheduled는 메소드 단위로 사용 가능하며 실행 주기 정의를 위한 'fixedDelay', 'fixedRate', 'cron'과 같은 속성들을 제공하고 있으며 @Scheduled 메소드에 대한 실행은 TaskScheduler가 담당합니다.
@Scheduled(fixedDelay=5000)
public void printWithFixedDelay() {
System.out.println("execute printWithFixedDelay() of Annotated PrintTask at "
+ new Date());
}
@Scheduled(fixedRate=10000)
public void printWithFixedRate() {
System.out.println("execute printWithFixedRate() of Annotated PrintTask at "
+ new Date());
}
@Scheduled(cron="*/5 * * * * MON-FRI")
public void printWithCron() {
System.out.println("execute printWithCron() of Annotated PrintTask at "
+ new Date());
}
참고 - Asynchronous Execution
@Async는 메소드 단위로 사용 가능하며 비동기적으로 특정 메소드를 실행하고자 할 때 사용할 수 있습니다. @Async 메소드에 대한 실제적인 실행은 TaskExecutor에 의해 처리됩니다.
이상 실행 후 확인해보면 scheduler가 돌아가는 것을 보실 수 있습니다.
참조 URL : http://dev.anyframejava.org/docs/anyframe/plugin/scheduling/4.5.2/reference/html/ch02.html
by rocksea.
'Developer' 카테고리의 다른 글
[ shell ] rows sum script (0) | 2013.02.15 |
---|---|
[samba] 간단 samba 설치 (0) | 2013.02.12 |
[Transaction] DB Transaction 설정 (0) | 2013.01.31 |
[jQuery] image slider (0) | 2013.01.23 |
[jQuery] event로 화면제어 (0) | 2013.01.23 |
- Total
- Today
- Yesterday
- 조동사
- maven
- k8s
- PostgreSQL
- JBOSS
- 비교구문
- 영작
- Python Django
- 다낭
- 베트남
- 가정법
- memcached
- 대명사 구문
- it
- Business English
- ubuntu
- 비지니스 영어
- 해외여행
- hadoop
- hdfs
- 여행
- 도덕경
- redis
- nodejs
- Python
- 영문법
- 스페인 여행
- NGINX
- AWS
- mongoDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |