Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 이진 탐색(binary search)
- cs 공부)준비
- 면접(java
- Grafana
- Java
- css
- GIT
- 정렬 알고리즘(sort algorithm)
- 코딩공부
- ArrayList
- 코딩
- Spring
- 코딩문제
- 코딩테스트 준비
- 자바
- 회고
- Til
- 99클럽
- Entity
- 자료구조
- aop
- 배열
- HTML
- CS
- wil
- 메서드
- github
- 항해99
- 개발자 취업
- 프로그래머스
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240412 Spring Scheduler 본문
Scheduler
- 주기적으로 또는 특정 시간에 작업을 실행할 수 있도록 도와주는 도구이다.
→ 스프링 프레임워크에서 스케쥴러를 지원한다.
Spring Scheduler 특징
- 추가적인 의존성이 불필요하다. (스프링 프레임워크의 기본 기능이다.)
- 사용이 쉽다(@Component와 @Scheduled 에너테이션 추가로 사용한다.)
- 1개의 Thread pool을 사용한다. → 스케쥴이 끝나야 다음 스케쥴 실행이 가능하다.
Spring Scheduler 사용 방법
@Scheduled
- Spring Boot 에서 @Scheduled 을 사용하면 일정한 시간 간격으로, 혹은 특정 시간에 코드가 실행되도록 설정할 수 있다.
@Scheduled 사용법
Application Class에 @EnableScheduling 를 추가한다.
@SpringBootApplication
@EnableScheduling
public class MoitApplication {
public static void main(String[] args) {
SpringApplication.run(MoitApplication.class, args);
}
}
스케쥴링 작업할 클래스를 만든다.
@Component
public class Scheduler {
@Scheduled(cron = "0 0 * * * *")/* 매시각 0분 */
public void run() {
System.out.println("Hello World!"); //예시
}
}
@EnableScheduling 와 @Component 두개의 에너테이션을 사용하면 된다.
- @Component 가 아니더라도 스프링 빈에 등록된 클래스여야 한다.(@service)
@Scheduled 규칙
- 메서드는 void 타입으로 만든다.
- 메서드는 매개변수를 사용할 수 없다.
Spring Scheduler 설정 옵션
fixedDelay
- fixedDelay는 작업이 끝난 시점부터 시간을 카운트 한다.

fixedRate
- fixedRate는 작업의 시작부터 시간을 카운트 한다.

corn 표현식
- cron = 0 * * * * ? : 앞에서부터 초, 분, 시, 일, 월, 요일 (연도) 순으로 진행된다.

- * : 모든 조건(매시, 매일, 매주처럼 사용)을 의미한다.
- ? : 설정 값 없음(날짜와 요일에서만 사용 가능)을 의미한다.
- - : 범위를 지정할 때 사용한다.
- , : 여러 값을 지정할 때 사용한다.
- / : 증분값, 즉 초기값과 증가치 설정에 사용한다.
- L : 마지막, 지정할 수 있는 범위의 마지막 값 설정 시 사용한다.(날짜와 요일에서만 사용 가능하다.)
- W : 가장 가까운 평일(weekly)을 설정할 때 사용한다.
예) 10W
10일이 평일일 때 : 10일에 실행
10일이 토요일일 때 : 가장 가까운 평일인 금요일(9일)에 실행
10일이 일요일일 때 : 가장 가까운 평일인 월요일(11일)에 실행
참고 자료
- https://king-ja.tistory.com/81
'프레임워크 > spring' 카테고리의 다른 글
[TIL]240415 테스트란 (0) | 2024.04.15 |
---|---|
[TIL]240413 Scheduler, Batch, Quartz / 프로젝트 Spring Scheduler 선택 이유 (0) | 2024.04.13 |
[TIL]240409 Dirty Checking (0) | 2024.04.09 |
[TIL]240402 Polling, Long Polling, Websocket, SSE (0) | 2024.04.02 |
[TIL]240401 Websocket(웹소켓) (0) | 2024.04.01 |