Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- decoratetext
- 넥사크로loadingimage
- WITH절
- loadingimage
- react
- flex-basis
- flex-grow
- 톰캣실행
- annotaion
- 코딩
- 로딩이미지변경
- singleton container
- Grid
- gif초기화
- HTML
- cron표현식
- 스프링 빈
- 빈
- DB #데이터베이스
- 마진상쇄
- setrealrowsize
- CSS
- frontend
- BEAN
- 싱글톤
- aws
- 넥사크로
- 싱글톤컨테이너
- Spring
- singleton
Archives
- Today
- Total
All Day Tired
@Scheduler, cron표현식 사용 본문
이번 프로젝트 하면서 스케줄러를 사용해야할 때가 왔다...
그래서 과장(놈)한테도 물어봤지... 스케줄러 따로 설정하는거 필요 없냐? 그냥 어노테이션만 쓰면 되냐?
근데 과장(놈) 왈 어 그냥 어노테이션만 쓰면 된다
그래서 스케줄러 돌려야하는 메소드 위에 어노테이션 @Scheduler(cron="0/40 * * * * * ") 이렇게 써줬는데 안 됨... 왜..? 과장이 하라는대로 다 해줬잖아....
근데 안 된 이유가 있다....ㅎ
상황
controller에서 scheduler를 돌려야하는 상황
@Scheduler 사용했지만 돌아가지 않음
원인
원인은 간단했다... 그냥 해당 controller 클래스에 @EnableScheduling를 써주지 않아서 문제였던 것...
근데 나는 이걸 처음 써봐서 좀 말도 안되는 구조로 쓴 듯 싶다...
서치도 해보고 다른사람들 써본거 보니까 다들 contorller나 service이런데에 scheduler를 박지는 않더라...ㅎ
@Scheduler 사용법
- scheduler를 돌릴 class를 생성해서 해당 클래스에 @EnableScheduling를 써주고 scheduler를 사용해준다.
- 메서드 접근자는 public으로 설정해줘야 한다.
- return 값이 있으면 안됨. void여야 한다.
- bean으로 등록되어야 하므로 @Component를 통해 클래스를 bean으로 등록해준다.
cron표현식
스케줄러를 사용하면서 시간을 지정해야하는데 이때 쓰이는것이 cron
cron표현식은 리눅스에도 자주 사용한다고 학원썜이 잘 기억해두라 하셨다...
- 필드
필드 | 범위 | 특수문자 |
초 | 0~59 | , - * / |
분 | 0~59 | , - * / |
시 | 0~23 | , - * / |
일 | 1~31 | , - * ? / L W |
월 | 1~12 또는 JAN~DEC | , - * / |
요일 | 0~6 또는 SUN~SAT | , - * ? / L # |
연도 | 생략 또는 1970~2099 | , - * / |
- 특수문자 의미
- * : 모든 값
- ? : 특정 값 없음
- - : 범위
- , : 특정 값
- / : 증분값
- L : 마지막(일과 요일 동시에 쓰지 못함, 일에 쓰이면 매월 말일, 요일에 쓰이면 매월 마지막 해당요일)
- W : 가장 가까운 평일
- # : N번 째 주 특정 요일
- 예제
사실 지금까지 쓴 스케줄러로는 매일 이 시간에 돌아라 이것밖에 없어서 예제는 이 예제 하나만 적고 모를 때 그때그떄마다 찾아보자...
0 30 2 * * * : 매일 오전 2시 30분 0초
'Back > Spring' 카테고리의 다른 글
싱글톤, 싱글톤 컨테이너 (2) | 2024.12.31 |
---|---|
스프링컨테이너, 스프링빈 등록/주입 (0) | 2024.12.30 |
스프링 빈 등록 (0) | 2024.09.23 |
스프링에서 RestTemplate 예제 (0) | 2024.08.20 |
MyBatis parameterType이 HashMap일 경우 사용법 (0) | 2022.05.09 |
Comments