[Spring Boot] @Scheduled 사용법

어디든 배우자·2023년 11월 16일
0

@Scheduled

Spring Boot에서 @Scheduled 어노테이션을 사용하면 일정한 시간 간격 또는,
특정한 시간에 코드 발동.

사용법

Application Class에 @EnableScheduling 추가.

Spring 애플리케이션에 스케줄링 활성화 시키기.

@EnableScheduling //이 어노테이션이 있어야 한다.
@SpringBootApplication
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

}

그리고 스케줄링이 필요한 클래스에 @Scheduled 추가.

@Service
@RequiredArgsConstructor
public class Service {
  
  @Scheduled(cron = "01 * * * * ?", zone = "Asia/Seoul")
  public void test(){
  		LocalDateTime time = LocalDateTime.now(ZoneOffset.UTC);
        System.out.println(time);
  }
  
}

cron 시간 설정 예시

크론 표현식 '0 * * * * ?' 작업이 매분 0초에 실행되어야 한다는 뜻.

//매일 오전 9시 발동
@Scheduled(cron = "0 0 09 * * ?", zone = "Asia/Seoul")
public void test(){
        System.out.println("--");
}

//매일 1, 15일 오전 9시 발동
@Scheduled(cron = "0 0 09 1,15 * ?", zone = "Asia/Seoul")
public void test(){
        System.out.println("--");
}

//매일 출근시간 사이에 5분 간격 발동
@Scheduled(cron = "0 0/5 9-18 * * ?", zone = "Asia/Seoul")
public void test(){
        System.out.println("--");
}

이런 식으로 예시가 정말 많다.

주의사항

Method는 void 타입 사용하기.

profile
다 흡수하기.

0개의 댓글