일단 씻고 나가자
25.03.24 본문
2025. 03. 24 월요일
- [Spring] scheduler의 수행 주기 3가지?
: fixedDelay, fixedRate, cron
fixedDelay는 이전 스케줄링의 종료 시점으로 얼마나 이후에 실행할 것인지,
fixedRate는 이전 스케줄링 시작 시점으로 얼마나 이후에 실행할 것인지,
cron은 개발자의 설정 주기로 실행.
fixedRate는 실행 주기를 정확히 맞출 수 있다는 장점이 있지만,
이전 수행과 겹쳐 수행되어 원치 않은 결과를 낼 수 있음.
cron은 주기를 7가지를 순서대로 적는 정규식 형태인데,
초, 분, 시, 일, 요일, 날짜, 년도(생략 가능) 순으로
공백으로 구분하여 적으며, 생략할 부분은 *으로 적는다.
예를 들어 [0 5 * * * *]는 매 시 5분 (ex. 1시 5분, 2시 5분 ...)
[0 0/10 * * * *]는 매 10분 (ex. 1시 5분, 1시 15분 ...)으로 수행한다.
/ 외에도 -(범위)/,(특정) 등의 정규식과 유사한 연산도 있다.
- [Spring] 배포와 애플리케이션 재시작의 차이? schedule cron을 예시로?
: 배포란 비즈니스 로직 등 코드적인 수정이 있을 때 기존 애플리케이션을 대체하는 것,
애플리케이션 재시작이란 properties/yaml 등의 설정 파일 등의 수정만 있는 것.
둘 다 애플리케이션이 중단되고 실행되는 것은 같다.
cron의 주기를 @Schedule 내에서 하드 코딩할 경우 수정 시 재배포가 필요하지만,
yaml에 적어놓고 “${경로}” 방식으로 작성하면 애플리케이션 재시작만으로 가능.