고똘이의 IT 개발이야기

 

- 스프링부트 스케줄링(Scheduler) -

 

 

- 스케쥴러란?

사용자가 원하는 시간대에 원하는 행동을 행위 할 수 있도록 동작하게 만들 놓은 약속이다.

- 스케쥴러 사용

보통 개발을 할 때 현재 처리를 하지 않지만 야간이나 어느 특정 시간때에 어떤 작업을 행해야 할때가 있다. 그럴경우 우리가 Spring(스프링)에 설정해 두었던 스케쥴러를 통해 동작을 행한다.

- 스프링 스케줄러 설정

 

1. cron의 스케줄러 설정 규칙입니다.

          초 분 시 일 월 요일

cron =  *   *  *   *  *    *

 

초 : 0 ~ 59초까지 표현이 가능합니다.

분 : 0 ~ 59분까지 표현이 가능합니다.

시 : 0 ~ 23시까지 표현이 가능합니다.

일 : 1 ~ 31일까지 표현이 가능합니다.

월 : 1 ~ 12월까지 표현이 가능합니다.

요일 : 0(일요일) ~ 6(토요일)까지 표현이 가능합니다.

 

2. cron 예제.

 1) 매일 11시에 동작 > 0 0 11 * * *

 

 2) 매일 10시 20분에 동작 > 0 20 11 * * *

 

 3) 1시간 마다 실행 -> 0 0 0/1 * * *

 

3. 스프링에서 설정 방법

 - @SpringBootApplication 이 설정 되어있는 곳에 Bean으로 설정한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@SpringBootApplication
// annotation 추가
@EnableScheduling
public class SchApiApplication{
 
 
    public static void main(String[] args) {
        SpringApplication.run(SchApiApplication.class, args);
    }
 
    // bean에 설정
    @Bean
    public TaskScheduler taskScheduler() {
        
        // 단일 스레드 구현 
        return new ConcurrentTaskScheduler(); 
    }
 
}
 
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

 

- Scheduler라는 클래스를 하나 만든 후 @Component트 설정 후 아래와 같이 스케줄러를 설정 해주면 끝입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Component
public class Scheduler {
 
    
    static final Logger log = LoggerFactory.getLogger(Scheduler.class);
    
    
 
    @Scheduled(cron = "0 0 11 * * *")
    public void testSch() {
        
        log.info("매일 11시에 스케줄러 동작.");
        
    }
}
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

이상입니다.

감사합니다.

 

- 추천글

[Spring, Java] 스프링, 자바 세션 설명 및 사용법(간단)

[Java]자바 문자열(텍스트) 자르기 substring() 사용법 & 예제

[Java]자바 문자(텍스트) 길이(length) 가져오기 사용법 & 예제

 

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band