개발/spring2

14강(스케줄러 사용법)

LoafingCat 2023. 1. 26. 20:43

스프링 부트를 사용하면 스케줄러를 아주 간단하게 사용할 있다.

 

 

어플리케이션 메인 클래스에 @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으로 등록된 이름을 그대로 매핑시켜주면 된다.

 

 

그리고 실행.. 안된다.

 

여기 부분에 오타가 있었다.

 

다시 실행.

 

 

 

 

모든 환경에 적용됐다.