- 스케쥴러란?
사용자가 원하는 시간대에 원하는 행동을 행위 할 수 있도록 동작하게 만들 놓은 약속이다.
- 스케쥴러 사용
보통 개발을 할 때 현재 처리를 하지 않지만 야간이나 어느 특정 시간때에 어떤 작업을 행해야 할때가 있다. 그럴경우 우리가 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
|
이상입니다.
감사합니다.
[springboot] 스프링부트 Mysql 연동 방법& 예제 (0) | 2020.02.27 |
---|---|
[ lombok, springboot ] 스프링부트에 lombok 롬복 설정방법 & 설명 &연결방법 (0) | 2020.02.11 |
[ springboot ] 스프링부트 mysql 연동방법 간단 (mysql jdbc connection) (0) | 2020.02.05 |
[ 스프링부트 ] 스프링부트 커스텀 태그라이브러리 소스 및 설명(간단) (0) | 2020.02.04 |
스프링부트(SpringBoot) 로그(Log)설정 (0) | 2018.06.25 |