스프링 프로젝트에서 주기적으로 프로그램을 실행하게 해주는 @Scheduled를 사용하고 있다.
@Scheduled 에 cron을 입력하면 cron표현식에 맞는 주기마다 실행된다.
우선 ScheduledTask.java 파일을 생성해서
@Component
@Slf4j
어노테이션을 붙인다.
@Scheduled(cron = "0 0 16 * * MON-FRI")
//@Scheduled(fixedDelay = 500000)
public void postBlog() throws Exception {
log.info("postBlog start!");
blogService.postBlog();
}
요즘 개발하고 있는 자동 포스팅 프로그램인데
월요일 부터 금요일까지 4시에는 한국은행의 환율 정보 API를 호출해서 티스토리 블로그에 자동으로
포스팅을 하도록 해놨다.
(현재 기능을 수정 개발 중이기 때문에 돌아가고 있지는 않다)
fixedDelay는 정해진 주기마다 프로그램이 실행되도록 설정하는 어노테이션이다.
저기
@Scheduled
cron 표현식을 입력해야하는데
자유자재로 cron 표현식을 사용할 줄은 몰라서
크론 표현식 생성기를 찾아봤고 유용한 사이트를 찾았다.
CronMaker
www.cronmaker.com
cron표현식을 자유자재로 만들수 있기 전까지는 이 사이트를 사용하면 좋을 것 같다.
실행예시)
//매주 월-금 4시에 실행해줘
@Scheduled(cron = "0 0 16 * * MON-FRI")
// 매일 9시에 실행해줘!
@Scheduled(cron = "0 0 9 * * *")
//일요일 13시에 실행해줘
@Scheduled(cron = "0 0 13 ? * SUN")
내가 항상 개발하고 싶어하는 "자동화 기능"들에 매우 유용하게 쓰일 기능으로 생각된다.
적어놓고 앞으로도 많이 써야겠다.
'개발일지 > tools' 카테고리의 다른 글
IntelliJ 인텔리제이 프로젝트 이름 변경 (0) | 2023.09.10 |
---|---|
IntelliJ 인텔리제이 프로젝트 실행 시 Active Profile 변경 (0) | 2023.09.09 |
IntelliJ 인텔리제이 라이브 템플릿 설정 (0) | 2023.02.20 |
git 에서 default branch 변경 (0) | 2022.02.05 |
git에 push만 하면 자동으로 deploy되는 기능 Netlify 사용 후기 (0) | 2022.02.04 |