🌠 @Schduling
Java 에서 스케쥴링을 구현하는 방법 중 가장 일반적인 방법은 Spring Framework의 @Scheduling 어노테이션을 사용해서 일정한 시간 혹은 간격으로 또는 특정 시간에 코드가 실행되도록 설정이 가능하다
이를 사용하면 간단한 방법으로 메서드를 주기적으로 실행할 수 있는것이다.
🌠 @Scheduling 사용방법
1. ApplicationClass 에 @EnableScheduling 추가
@EnableScheduling
@SpringBootApplication
public class HomauraApplication {
public static void main(String[] args) {
SpringApplication.run(HomauraApplication.class, args);
}
}
이런 식으로 스케쥴링을 설정해주면 스케쥴링을 사용할 준비가 완료된것이다.
2. 스케쥴링 할 메서드 작업
@Slf4j
@Component
public class OrderStatusScheduling {
@Scheduled(fixedRate = 1000)
public void changeStatus() throws InterruptedException {
log.info("1초마다 실행 중");
Thread.sleep(3000);
}
}
이렇게 원하는 서비스의 이름인 Class 를 만들고 @Component 혹은 @Service 어노테이션을 설정해 스프링 빈에 등록해주어야 한다 또한 약간의 규칙이 필요하다
- @Scheduling 의 규칙
- Method는 void 를 반환해야 한다
- Method의 매개변수는 사용할 수 없다.
🌠 @Scheduling 의 속성
@Scheduling에는 약간의 속성이 있다.
- fixRate = ms단위의 숫자
- 일정한 시간 단위로 해당 스케쥴러를 실행한다
- fixDelay = ms단위의 숫자
- 해당 스케쥴러가 끝난 이후로 일정한 시간이 지난 후에 실행
- initialDelay = ms단위의 숫자
- fix뒤에 추가로 붙는 것이다. 이는 해당 메소드가 일정한 시간이 지난 이후로 시작한다 라는 뜻이다.
- cron
- Cron 표현식을 이용해서 원하는 작업 실행 시간을 지정한다.
크론 표현식
http://www.cronmaker.com/;jsessionid=node0dg54wfnfg320nvq20y05daph689789.node0?0
CronMaker
www.cronmaker.com
크론 표현식은 여기서 만들수 있다. 추가적으로 각 표현식에 대한 설명은 밑의 사진으로 간단하게 알아보자
'Spring > 🌲 Spring' 카테고리의 다른 글
🌲 왜 Service 는 Impl을 구분하는 걸까? (0) | 2023.08.04 |
---|---|
🌲 Entity 와 DTO 의 차이 (0) | 2023.08.03 |
🌲 @NoArgsConstructor 와 @AllArgsConstructor 그리고 @RequiredArgsConstructor (0) | 2023.08.03 |
🌲 RestController 와 Controller 의 차이 (0) | 2023.08.03 |
🌲 Request 와 Response (0) | 2023.08.03 |