IT/Java

스프링 스케줄러(@Scheduled)

성준하이 2022. 5. 4. 08:41
반응형

반복적인 작업을 하기 위해서 다양한 방법들이 있다.

리눅스 상에서의 crontab이나 코드내부라면 while문과 sleep 를 합쳐서 만들수도 있을것이고 방법은 다양하겠지만 이번 포스팅에서는 스프링에서 crontab을 내장하여 사용하는것과 비슷한 스프링 스케줄러에 대해서 소개를 해볼것이다.

 

사용을 하기 위해서는 스키마를 먼저 등록하고 하단에 task:annotation-drive 태그를 입력한다.

그리고 메서드에 어노테이션을 설정한다.

방식은 다양하다.

fixed방식
@Scheduled(fixedDelay=1000)
public void test(){
    System.out.println("스케줄러입니다.");
}
  • fixedDelay 의 어노테이션 옵션의 1000은 ms단위이고 종료된 시간부터 이 시간이 지나고실행이 된다.
  • fixedRate의 어노테이션 옵션은 실행된 시간으로부터의 실행이 되고 실행된다.
cron방식
@Scheduled(cron = "*/5 * * * * *")
public void test2(){
    System.out.println("스케줄러입니다.");
}

리눅스 상의 crontab과 매우 유사하며 왼쪽부터 분, 시, 날짜, 달, 년, 요일 순서로 지정을 할수가 있다.

반응형