본문 바로가기
Web Programing!/JAVA / JSP

[Spring boot]스케줄러(scheduler)

by 어설픈봉봉이 2019. 4. 10.
반응형
SMALL


[Spring boot]스케줄러(scheduler)



정해진 시간에 주기적으로 반복적인 일을 수행하는 경우가 많습니다.

@Scheduled 어노테이션으로 몇 가지의 설정을 통해 반복 작업을 실행할 수 있습니다.



1. Application 상단에 @EnableScheduling 추가


@SpringBootApplication

@EnableCaching

@EnableScheduling

public class WebApplication {}



2. 선언

import org.springframework.scheduling.annotation.EnableScheduling;

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Service;


 - 호출 후 10초 후 재 호출. 호출 된 프로세스가 다 완료되고 5초 대기 후 또 다시 호출.

@Scheduled(fixedDelay = 10000)

public void fixedDelay() {

    System.out.println(new Date());

}

 

 - 호출 후 프로세스와 상관없이 10초 마다 호출.

@Scheduled(fixedRate = 10000)

public void fixedRate() {

    System.out.println(new Date());

}

 

- 호출하고 2초 대기 후에 실행, 이후 프로세스와 상관없이 7초마다 호출.

@Scheduled(fixedRate = 7000, initialDelay = 2000)

public void fixedRateWithInitialDelay(){

    System.out.println(new Date());

}

 


// "0 0 * * * *" = the top of every hour of every day.

// "*/10 * * * * *" = 매 10초마다 실행한다.

// "0 0 8-10 * * *" = 매일 8, 9, 10시에 실행한다

// "0 0 6,19 * * *" = 매일 오전 6시, 오후 7시에 실행한다.

// "0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 every day.

// "0 0 9-17 * * MON-FRI" = 오전 9시부터 오후 5시까지 주중(월~금)에 실행한다.

// "0 0 0 25 12 ?" = every Christmas Day at midnight


@Scheduled(cron = "0 0 0-6 * * *")

public void cron(){

    System.out.println(new Date());

}








반응형