Spring Scheduled

현재 회사에서는 리눅스 cron으로 스케쥴을 관리하고 있는데,

스케쥴이 필요한 새로운 개발 건이 생겼다.

이번 기회에 리눅스에서 실행하는 것이 아니라 스프링 스케쥴을 사용해서

개발을 해봐야겠다는 생각이 들었고, 스프링 doc과 구글링을 통해서

스프링 스케쥴로 개발을 할 수 있었다.(현재까지 운영에서 이상없이 잘 돈다!)

스프링 스케쥴을 하면서 정리했던 개념과 테스트 코드를 작성해보자.

Cron 표현식

Cron 표현식을 사용해서 작업을 예약할 수 있다.


// 매 10초마다 실행
@Scheduled(cron = "*/10 * * * * *") 
public void myScheduledMethod() {
    // 이 메서드에 실행할 작업을 구현합니다.
    System.out.println("매 10초마다 실행됩니다.");
}

1. Application Class → @EnableScheduling 추가

@Scheduled 어노테이션을 사용하기 위함.

2. 빈 등록

실제 스케줄링 작업할 클래스는 @Component(@Service 등)

→ 즉,스프링 빈에 등록된 클래스여야 한다.

다음 규칙을 지키며 스케줄러 메소드를 만들자.

@Scheduled 규칙

1. Method는 void 타입
2. Method는 매개변수 사용 불가