728x90
새로 지원한 회사에서 내준 과제를 진행하면서 '만료 기간'에 대한 요구사항을 만났습니다.
따라서, db에 저장된 데이터의 만료 시간이 되면 상태값을 바꿔줘야 했습니다. 이런 요구사항을 해결하기 위해 직접 상태를 바꿔줄 수는 없었고 '스케줄러'를 사용하기로 결심을 했습니다.
저는 application의 main 메소드가 있는 클래스에 @EnableScheduling을 추가했습니다.
위의 어노테이션을 달아줘야 스프링부트가 @Scheduler를 인지할 수 있다고 합니다.
@Scheduler은 제가 원하는 클래스안에 메소드에 붙여줍니다.
우선, 간단하게 코드로 만나보겠습니다.
@SpringBootApplication
@EnableScheduling // 추가된 어노테이션
public class SpringStudyApplication {
public static void main(String[] args) {
SpringApplication.run(SpringStudyApplication.class, args);
}
}
@Component
@Slf4j
public class ScheduleService {
@Scheduled(cron = "0 */1 * * * *") // 1분 마다 스케줄 실행
public void changeExpirePointStatus() {
log.info("스케줄 작동");
}
}
결과
어플리케이션이 부트가 된 후 1분 마다 스케줄이 작동했다는 로그가 찍힙니다!
제가 원하는 결과가 나왔습니다.
728x90
'스프링' 카테고리의 다른 글
[스프링 시큐리티] 스프링 부트 3.X 이상의 시큐리티 (0) | 2023.06.01 |
---|---|
[스프링 시큐리티]JWT 토큰안에 내가 원하는 값 넣기 (0) | 2023.04.10 |
[스프링 시큐리티] redis를 이용한 jwt 로그아웃 만들기 (2) | 2023.01.31 |
[스프링 시큐리티] custom한 authentication받기 (0) | 2023.01.25 |
스프링 이메일 인증 (0) | 2021.11.12 |
댓글