2023. 1. 26. 20:43ㆍ개발/spring2
스프링 부트를 사용하면 스케줄러를 아주 간단하게 사용할 수 있다.
어플리케이션 메인 클래스에 @EnableScheduling 추가
스케줄러 관리하는 패키지를 하나 추가
Schdule1 메소드가 있고 @Scheduled 어노테이션을 추가하면 사용이 가능하다 corn에 5초에 한 번씩 작동하게 설정했다.
local에서 5초마다 잘 돈다.
그런데 서버 환경마다 스케줄러 시간에 조건이 필요하다. 로컬, 개발서버, 운영서버 각기 다른 시간 설정을 한다고 하자. 어떻게 해야 할까.
저번에 만든 GolbalConfig 클래스랑 프로퍼티를 사용하면 된다.
먼저 프로퍼티에 corn(key = value)을 추가한다.
로컬은 5초마다 한 번씩, dev는 10초, prod는 20초
이런식으로 하고 프로퍼티 이름을 복사해서 GrobalConfig 클래스에 변수를 추가함.
변수에 프로퍼티의 값을 매핑해준다.
Get 메소드를 만들어준다. schedulerCronExample1에 cron을 가져올 수 있다.
Configuration 패키지에 새로운 클래스 추가. SchedulerCronConfiguration 클래스를 만들고 @Autowired GlobalConfig config 추가,
사용할 cron을 bean으로 등록 (config에 설정된 값)
프로퍼티 값이 변수에 있고 이 변수의 값이 Bean에 등록이 된다. 아까 Bean에 설정된 값을 @Scheduled cron에 변경함.
Bean으로 등록된 이름을 그대로 매핑시켜주면 된다.
그리고 실행.. 이 안된다.
여기 부분에 오타가 있었다.
다시 실행.
모든 환경에 잘 적용됐다.
'개발 > spring2' 카테고리의 다른 글
16강(스프링부트 환경에서 파일업로드 만들기) (0) | 2023.01.29 |
---|---|
15강(Mybatis TypeHandler 사용) (0) | 2023.01.28 |
12강(사용자 로그인 체크 간단하게 구현하기) (0) | 2023.01.24 |
11강(게시글 조회시 목록 페이징 처리 방법) (0) | 2023.01.23 |
10강(mybatis, mapper(xml) 조건문에 배열(array) 사용하는 방법) (0) | 2023.01.22 |