티스토리 뷰
이 포스팅을 보러왔다면 잡 스케쥴러에 대한 기본 지식은 있고 설정하는 방법을 찾으러 왔다는 가정하에
간단하게 셋팅 내용만 포스팅할 예정이다.
1.servlet-context.xml 에서 task 추가하기
간단하게 Namespaces에서 체크해 추가해주자, 메이븐으로 라이브러리를 추가할 필요도 없이 스프링에 내장되어 있다.
2.어노테이션으로 설정
1 2 3 | <context:component-scan base-package="com.spring.odagada"/> <task:scheduler id="jobScheduler" pool-size="10"/> <task:annotation-driven scheduler="jobScheduler"/> | cs |
servlet-context.xml에서
위와 같이 어느 패키지까지 스캔할지 범위를 지정하고 task스케쥴러를 정의한 다음 id값으로 어노테이션과 맞춰준다.
3.스케쥴러 사용하기
1 2 3 4 5 6 7 8 9 10 11 | @Controller public class CommunityController { @Autowired CommunityService service; private Logger logger = LoggerFactory.getLogger(CommunityController.class); @Scheduled(cron="0 18 10 * * *") public void scheduleTest() { logger.debug("스케쥴러 테스트중"); } | cs |
사용하려는 클래스에서 어노테이션으로 설정을 하고 내가 실행 시키고 싶은 시간을 패턴형식으로 지정하여 사용하면 된다.
CRON 크론 패턴
초 | 분 | 시 | 일 | 월 | 요일 | 연도
0~59| 0~59| 0~23| 1~31 | 1~12| 0~6 | 생략가능
요일: 0(일요일) ~ 6(토요일)
? : 설정 값 없을 때 - 일과 요일에서만 사용가능
* : 모든 조건
시작시간/단위 : 시작 시간부터 해당 단위 때
시작범위-끝범위 : 시작범위부터 끝 범위까지
L : 마지막 - 일,요일에서만 사용 가능
W : 가장 가까운 평일을 찾는다 - 일 에서만 사용 가능
ex) 10W
-10일이 평일일 때 : 10일에 실행
-10일이 토요일일 때 : 가장 가까운 평일인 금요일(9일)에 참
-10일이 일요일일 때 : 가장 가까운 월요일에 참
# : 몇주 째인지 찾는다 - 요일에서만 사용가능
ex)3#2 : 수요일#2째주에 참
1) 매월 10일 오전 11시에 실행
0 1 1 10 * *
2) 매일 오후 2시 5분 0초에 실행
0 5 14 * * *
3) 10분마다 실행
0 0/10 * * *
4)조건에서만 실행 10분 0초, 11분 0초 ~ 15분 0초까지 실행
0 10-15 * * *
출처:https://sun-p.tistory.com/115
출처:http://webprogramer.kr/blog/P000000289/post.do
'Back-end > Spring' 카테고리의 다른 글
Spring 오브젝트와 의존관계 (0) | 2019.05.28 |
---|---|
스프링 코어#1 (DI) (0) | 2019.05.18 |
AJAX 사용 시 데이터가 깨지는거 잡아주는 거 (0) | 2019.03.07 |
Spring 파일 다운받기 (0) | 2019.03.02 |
Spring WEB Socket (2) | 2019.02.24 |