반응형
250x250
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
- 생성자쓰는이유
- 프로그래머스
- 제어문
- setter
- 오라클
- sql오류
- 작성순서
- Java
- 겟터
- ifelse
- for문
- SQL
- system error 113
- 연산자
- int오류
- 삼항연산자
- 객체
- 자바
- getter
- DB연결 문제
- 이터레이블
- 외부접속 차단
- 생성자
- .substring
- SELECT 절
- HAVING
- .repeat
- Join
- 상속
- 칼럼명에 별칭 지정
Archives
- Today
- Total
CoDream
@Scheduled 본문
728x90
반응형
@Scheduled
스프링의 @Scheduled 애노테이션은 다양한 방식으로 스케줄링 작업을 설정할 수 있습니다. 주로 사용하는 세 가지 종류는 fixedRate, fixedDelay, 그리고 cron입니다. 각 옵션이 어떻게 동작하는지, 그리고 언제 사용하는지에 대해 자세히 설명하겠습니다.
1. fixedRate
fixedRate는 이전 작업의 시작 시간으로부터 지정된 시간 간격으로 작업을 실행합니다.
작업이 완료되는 시간을 고려하지 않고 일정 간격으로 작업을 시작합니다.
@Scheduled(fixedRate = 5000)
public void executeTask() {
// 5초마다 작업 실행
System.out.println("Task executed at " + System.currentTimeMillis());
}
사용 시기:
- 작업의 실행 간격이 일정해야 하는 경우.
- 작업 시간이 짧아서 간격에 큰 영향을 미치지 않는 경우.
2. fixedDelay
fixedDelay는 이전 작업이 완료된 시점으로부터 지정된 시간 간격 후에 작업을 실행합니다.
즉, 작업이 끝난 후 일정 시간이 지나면 다음 작업을 시작합니다.
@Scheduled(fixedDelay = 5000)
public void executeTask() {
// 이전 작업 완료 후 5초 후에 작업 실행
System.out.println("Task executed at " + System.currentTimeMillis());
}
사용 시기:
- 각 작업이 완료된 후 일정 시간이 지난 후에 다음 작업을 실행해야 하는 경우.
- 작업 시간이 가변적이고, 작업 완료 후에 일정한 대기 시간이 필요한 경우.
3. initialDelay
initialDelay는 첫 번째 작업이 실행되기 전에 대기하는 시간을 지정합니다.
fixedRate 또는 fixedDelay와 함께 사용하여 처음 작업을 시작하기 전에 지연 시간을 설정할 수 있습니다.
@Scheduled(fixedRate = 5000, initialDelay = 10000)
public void executeTaskWithDelay() {
// 애플리케이션 시작 후 10초 후에 첫 작업 실행, 이후 5초 간격으로 작업 실행
System.out.println("Task executed at " + System.currentTimeMillis());
}
사용 시기:
- 애플리케이션 시작 후 바로 작업을 실행하지 않고 일정 시간 후에 시작해야 하는 경우.
4. cron
cron 표현식은 더 정교하고 유연하게 작업 스케줄을 설정할 수 있는 방법입니다.
cron 표현식을 사용하여 특정 시간, 요일, 월 등 다양한 조건을 설정할 수 있습니다.
@Scheduled(cron = "0 0/5 * * * ?")
public void executeCronTask() {
// 매 5분마다 작업 실행
System.out.println("Cron task executed at " + System.currentTimeMillis());
}
사용 시기:
- 특정 시간, 요일, 월 등에 작업을 실행해야 하는 경우.
- 복잡한 스케줄을 설정해야 하는 경우.
Cron 표현식 예시:
- 0 0 12 * * ? : 매일 12시 정각에 실행
- 0 15 10 * * ? : 매일 10시 15분에 실행
- 0 0 10,14,16 * * ? : 매일 10시, 14시, 16시에 실행
- 0 0/30 9-17 * * ? : 9시부터 17시까지 매 30분마다 실행
- 0 0 0 1 * ? : 매월 1일 자정에 실행
728x90
반응형
'Spring > Spring 이론' 카테고리의 다른 글
Spring AOP 주요 용어 (0) | 2024.06.27 |
---|---|
스프링 AOP(Aspect-Oriented Programming) (0) | 2024.06.19 |
디스패처 서블릿 (0) | 2024.06.18 |
스프링 MVC의 동작 원리 (0) | 2024.06.18 |
스프링 - 컨트롤러 정의, CORS허용 (2) | 2024.05.11 |