Spring boot에서 Scheduler 사용하기

Scheduler는 어떤 조건을 갖고 일정 간격 또는 특정 시간에 주기적으로 실행됩니다.

Spring boot에서는 @Scheduled 어노테이션을 사용하여 위와 같은 작업을 진행할수 있습니다.

아래 설정은 스케줄러를 사용하기 위한 최소 설정 내용입니다.

먼저 @Scheduled 어노테이션을 사용하기 위해 스케줄러 활성화가 필요합니다.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String []  args) {
        SpringApplication.run(Application.class, args);
    }
}

@EnableScheduling 어노테이션을 추가함으로서 스케줄러를 사용할 준비가 되었습니다.

다음은 스케줄러 클래스를 간단하게 작성하도록 합니다.

아래와 같이 코드를 작성하면 5초에 한번씩 console에 Scheduled executed. 문장을 출력할것입니다.

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class TimeScheduler {

    @Scheduled(initialDelay = 500, fixedDelay = 5000)
    public void execute() {
        System.out.println("Scheduled executed.");
    }
}

@Scheduled 어노테이션에서 사용할수 있는 옵션들을 아래 정리합니다.

자세한 내용은 다음을 차고하세요.

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/annotation/Scheduled.html

// 5초마다 실행
@Schedulred(fixedRate = 5000)

// 이전 실행 완료 후 5초 대기 후 실행
@Schedulred(fixedDelay = 5000)

// 첫 실행시 5초 대기후 실행, 그 이후 5초마다 실행
@Schedulred(initialDelay = 5000, fixedRate = 5000)

// 매일 낮12시에 실행
@Schedulred(cron = “0 0 12 * * ?”

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다