14강(스케줄러 사용법)
스프링 부트를 사용하면 스케줄러를 아주 간단하게 사용할 수 있다.
어플리케이션 메인 클래스에 @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으로 등록된 이름을 그대로 매핑시켜주면 된다.
그리고 실행.. 이 안된다.
여기 부분에 오타가 있었다.
다시 실행.
모든 환경에 잘 적용됐다.