Scheduled Task 작성하기
@Scheduled
annotation에 해당 메서드가 언제 실행될지를 정의
@Scheduled
annotation 속성값
fixedRate
: 이전 수행이 시작된 시점을 기준으로 함 (수행 시작 후 지정된 시간 이후에 실행)fixedDelay
: 이전 수행이 종료된 시점을 기준으로 함 (수행 종료 후 지정된 시간 이후에 실행)cron
: 초(0-59) - 분(0-59) - 시간(0-23) - 일(1-31) - 월(1-12) - 요일(0-7) 순으로 지정zone
: 시간대를 설정할 수 있음 설정하지 않으면 서버 시간을 기준으로 함
@Component
public class Scheduler {
private static final Logger logger = LoggerFactory.getLogger(Scheduler.class);
@Scheduled(cron = "0 0 0 * * *") // 매일 0시 0분 0초에 실행하겠다
public void testScheduler () {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date now = new Date();
String today = sdf.format(now);
logger.info("============ " + today + " 스케쥴러 실행. ============");
}
}
Scheduling 활성화
@EnableScheduling
annotation으로 활성화
@EnableScheduling
@SpringBootApplication
public class SchedulingTasksApplication {
public static void main(String[] args) {
SpringApplication.run(ToogainApiApplication.class, args);
}
@Bean
public TaskScheduler taskScheduler() {
return new ConcurrentTaskScheduler();
}
}
+) 참고
스프링부트에서 Scheduling 사용하기 · 기억하기 위한 개발노트
Spring Boot Scheduler @Scheduled 사용
cron 참고
┌───────────── second (0-59)
│ ┌───────────── minute (0 - 59)
│ │ ┌───────────── hour (0 - 23)
│ │ │ ┌───────────── day of the month (1 - 31)
│ │ │ │ ┌───────────── month (1 - 12) (or JAN-DEC)
│ │ │ │ │ ┌───────────── day of the week (0 - 7)
│ │ │ │ │ │ (0 or 7 is Sunday, or MON-SUN)
│ │ │ │ │ │
* * * * * *
'STUDY > Spring' 카테고리의 다른 글
Spring Boot | S3파일 업로드 후 CloudFront SignedURL 생성하기 (0) | 2020.12.24 |
---|---|
Spring Boot | S3 파일 업로드 (0) | 2020.12.22 |
Spring Boot | 프로젝트 생성, 실행하기 (0) | 2020.12.20 |
SpringBoot | java.lang.IllegalArgumentException (0) | 2020.11.17 |
Spring Boot | 스프링 시큐리티 X-Frame-Option 설정 (0) | 2020.11.14 |