728x90
반응형
SMALL
@EnableScheduling
- Springboot의 실행파일에 위 어노테이션을 걸어주어야 @Scheduled 사용이 가능 하다.
@EnableScheduling
@SpringBootApplication
public class PracApplication {
public static void main(String[] args) {
SpringApplication.run(PracApplication.class, args);
}
}
@Scheduled
- 위 어노테이션은 스케줄러를 지정해주기 위한 어노테이션으로 지정한 메소드의 스케줄러를 지정 해 줄 수 있다.
- 그냥 원할때 실행 되게끔 만들 수 있다는 뜻
- 위 어노테이션을 사용하기 위해서는 메소드의 리턴타입이 없어야 한다. (void)
- 메소드의 매개변수를 사용 불가.
- 스프링 빈(Bean)에 등록이 되어있어야 한다. ( @Component, @Controller, @Service, @Repository )
예제
// 3초마다 한번씩 실행한다 cron 사용
@Scheduled(cron = "0/3 * * * * ?")
public void navernews(){
}
- 이 외에도 Scheduled 는 다양한 방식의 스케쥴러를 사용 할 수 있도록 지원한다.
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(Schedules.class)
@Reflective
public @interface Scheduled {
String CRON_DISABLED = ScheduledTaskRegistrar.CRON_DISABLED;
String cron() default ""; //cron표현식을 사용하여 특정 시작마다 동작 할 수 있게 해줌
String zone() default ""; // "Asia/Seoul" 같은 지역 시간대를 사용 할 수 있음 Default는 Local의 시간
// @Scheduled(cron = "* * * * * * ?", zone = "Europe/Paris") 이런식으로 사용 가능
long fixedDelay() default -1; // 메소드가 끝난 시점을 기준으로 적용된 시간 마다 실행시킴 (ms을 기준)
String fixedDelayString() default ""; // fixedDelay()와 같은 기능이지만 문자열을 매개변수로 받음
long fixedRate() default -1; //메소드 작업이 시작한 시점을 기준으로 적용한 시간마다 실행 (ms을 기준)
String fixedRateString() default ""; //fixedRate() 과 같지만 매개변수로 문자열
long initialDelay() default -1; // 최초 메소드를 실행시키기까지의 지연시간 (ms 기준)
String initialDelayString() default ""; // initalDelayString 과 같은 동작, 매개변수 String
//@Scheduled(fixedRate = 5000, initialDelay = 3000) // 메소드가 3초후에 5초마다 실행
TimeUnit timeUnit() default TimeUnit.MILLISECONDS; //fixed* 혹은 inital* 들을 사용할때 시간을 측정할때 사용되는 것으로 추정
String scheduler() default ""; // 해당 메소드를 실행 하기 위해 메소드 명을 가지게된다.
}
- 공식 문서는 밑에
728x90
반응형
LIST
'Spring' 카테고리의 다른 글
[Spring] Spring Security + 구글 OAuth2 로그인 + Youtube Data V3 API 활용 (1) | 2024.01.25 |
---|---|
[Spring] 화상 채팅 구현하기 (ZEGOCLOUD API 활용 O, WebRTC X, Feat.Thymeleaf) (0) | 2024.01.25 |
[Spring] Naver OAuth2 로그인 + Spring Security + Naver 검색 API 활용 (1) | 2024.01.24 |
[Spring] OpenAI API를 활용하여 ChatBot만들기 (0) | 2024.01.23 |
6장 스프링 DB 접근 기술 (1) | 2023.10.08 |