2017년 5월 8일 월요일

spring schedule job 생성

서버 내에서 주기적으로 실행되야 하는 Task를 위해 스케쥴링이 필요한 경우가 있다.
그러한 경우 아래와 같이 스케쥴 job을 생성하여 실행시킬 수 있다.

@EnableScheduling 어노테이션을 사용하여, 스케쥴링을 가능하게 할 수 있고,
아래와 같이 @Scheduled 어노테이션을 이용하여, 해당 Task의 주기를 설정할 수 있다.

@Scheduled
- cron
UNIX의 cron과 같은 형식으로 분, 시, 날짜, 월 그리고 요일 을 설정하여 주기 설정이 가능하다.
- fixedDelay
밀리세컨드 단위로, 마지막 수행시간 이후에 해당 설정된 시간이 지나면 새로운 수행이 시작된다.

아래와 같은 설정으로 5,10초 단위로 스케쥴 잡이 수행될 수 있게 설정할 수 있다.

// Excuted every 5, 10 seconds
    @Scheduled(cron = "*/5 * * * * *")
    public void report5Time() {
        System.out.println("every 5 second " + dateformat.format(new Date()));
    }

- 수행 결과

every 2 second 14:14:54
every 5 second 14:14:55
every 2 second 14:14:56
every 2 second 14:14:58
every 5 second 14:15:00
every 2 second 14:15:00
14:15:00 =>14:15:00
every 2 second 14:15:02
every 2 second 14:15:04
every 5 second 14:15:05

전체 예제는 아래 gitlab에서 다운로드 받을 수 있다.

https://shashaka@gitlab.com/shashaka/schdulejob-project.git


참고 : https://spring.io/guides/gs/scheduling-tasks/

댓글 없음 :

댓글 쓰기