본문 바로가기
스터디/Spring

[Springboot] @Scheduled cron 사용하는 방법

by zoodi 2023. 8. 12.
728x90

@Scheduled 사용하기

@Scheduled 어노테이션을 사용하기 위해서 @EnableScheduling을 추가해주어야한다.

 

@EnableScheduling
public class TaskBatchApplication {
	public static void main(String[] args) {
		SpringApplication springApplication = new SpringApplication(TaskBatchApplication.class);
		springApplication.addListeners(new ApplicationPidFileWriter());
		springApplication.run(args);
	}
}

SpringbootApplication 위에 @EnableScheduling 어노테이션을 추가해주거나 스케줄링을 적용하고자하는 클래스위에 @EnableScheduling 어노테이션을 추가해준다. 그리고 실제 사용할 자바 메소드 위에 아래와 같이 적용하여 스케줄링을 사용한다.

 

@Scheduled(cron = " 10 * * * * *")

 

위 예시코드에서 10초마다 스케줄러가 동작하여 현재시간이 출력된다.

 

각 자리마다 나타내는 시간주기를 의미하는데 자세한 내용은 아래와 같다.

 

 

 

기호 의미
* 모든 조건을 의미
? 설정 값이 없을 때 (날짜와 요일에서만 사용가능)
- 범위 값 지정할 때 사용
, 여러 값 지정할 때 사용
/ 초기값과 증가치 설정할 때 사용
범위의 마지막 값 (날짜와 요일에서만 사용가능)
W 가장 가까운 평일을 찾음 (일 에서만 사용가능)

예시)

  • 매월 10일 오전 11시
    • cron = "0 0 11 10 * *"
  • 매일 오후 2시 5분
    • cront = "0 5 14 * * *"
  • 10분마다 스케줄링 동작
    • cron="0 */10 * * * *"
728x90

댓글