그러한 경우 아래와 같이 스케쥴 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/
댓글 없음 :
댓글 쓰기