자바 스프링에서 크론을 이용하면 내가 원하는 시간대에 로직을 실행시킬 수 있다. 프로그램을 자동화하는 이유는 여러가지가 있지만 그 중 크론이 가장 편한 것이 있다. 특정 시간에 로직을 자동화하면 기초 데이터를 구성하는데 도움이 된다.
자바 스프링 자동화를 위한 크론 cron
크론 ( cron )을 이용하는 것으로 로직을 자동화할 수 있다.
단점이라면 크론을 이용한 메서드는 파라미터를 받을 수도 없고 리턴값도 없어야 한다.
throws 도 되지 않는다.
왜 그런것인지 자세한 내용은 찾아보지 않았지만, 에러나는 부분을 찾아봤을 때 그랬다.
하지만, 크론을 이용한 메서드에서 다른 메서드를 호출할 때는 보통의 방법으로 사용하면 가능하다.
어쨌든
매일매일 특정 시간에 데이터를 재구성하기 위한 스케쥴링을 하기 위한 방법으로 크론을 사용하는 것은 요긴하게 사용할 수 있다.
설정방법은 이전에 작성한 포스팅을 참고하자
▶ 자바 스프링 스케줄러 구현과 실행 cron 표현식 사용
매일 특정시간에 동작할 크론 정하기
웹사이트를 만들었다면 사람들이 많이 사용하지 않는 시간대가 있다.
( 이런 고민을 해봤음 좋겠다. )
보통 새벽시간대
블로그를 자주 하는 사람들에 물어보면 보통 새벽 4시정도면 다들 취침한다고 한다.
그렇기에 시스템을 업데이트하거나 데이터를 재구성해야 하는 시간대가 보통 새벽시간대임을 생각하면 관계가 있다.
어쨌든
매일 새벽 1시 2시 3시에 자바 스프링으로 특정 로직을 실행하려면 아래와 같이 하면 된다.
/** 매일 새벽 1시 */
@Scheduled(cron ="0 0 01 * * ?")
/** 매일 새벽 2시 */
@Scheduled(cron ="0 0 02 * * ?")
/** 매일 새벽 3시 */
@Scheduled(cron ="0 0 03 * * ?")
/** 매일 오전 6시 */
@Scheduled(cron ="0 0 06 * * ?")
/** 매일 오전 9시 */
@Scheduled(cron ="0 0 09 * * ?")
/** 매일 오후 3시 */
@Scheduled(cron ="0 0 15 * * ?")
/** 매일 오후 6시 */
@Scheduled(cron ="0 0 18 * * ?")
대충 느낌 오는 것을 알 수 있다.
코드로 만들어 보자.
매일 아침 5시에 데이터를 재구성하는 메서드를 실행하는 자동화 코드는 다음과 같다.
@Scheduled(cron ="0 0 05 * * ?")
public void ScheduleTest() {
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
String formattedDate = dateFormat.format(date);
logger.info("ScheduleTest" + formattedDate);
}
크론 표현식에서 숫자가 입력된느 의미는 다음과 같다/
시간대가 오름차순으로 기입하면 되며, 연도는 생략 가능하다.
cron ="초 분 시 일 월 요일 (연도)"
'programming > SpringJava' 카테고리의 다른 글
JSON.simple 을 이용하여 json 문자열 파싱하고 값 추출하기 (0) | 2021.06.25 |
---|---|
자바 스프링 json 문자열 파싱과 조작을 위한 JSON.simple (0) | 2021.06.24 |
메이븐에 com.auth0.jwt 추가하기 How to add com.auth0.jwt from maven (0) | 2021.06.21 |
자바 스프링 스케줄러 구현과 실행 cron 표현식 사용 (0) | 2021.03.31 |
자바 스프링 MySQL DB 데이터베이스 연결하기 (0) | 2021.03.29 |
댓글