스케줄러 크론(Cron)

Jongmyung Choi·2023년 6월 29일
2
post-custom-banner

Cron 이란?

유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러

Mac에서 사용해보기

Mac os도 유닉스 계통이기 때문에 cron을 스케줄러로 사용한다.

0. 크론탭(Crontab)과 명령어

Cron이 언제 무엇을 하는지 특정 파일에 저장하는 것을 크론탭(Cron table) 이라고 한다.

명령어설명
crontab -e예약작업 설정, 수정
crontab -l예약작업 목록 보기
crontab -r예약작업 삭제

1. 크론탭 실행

터미널에서 crontab -e 명령어를 실행한다.

처음 실행하면 아무 내용이 없는 빈 화면이 나오고 이미 설정이 되어 있는 경우라면 내용을 편집할 수 있는 화면이 나온다.

2. 설정

* * * * * date 입력후 저장한다.

매 1분마다 date 명령어를 실행한다.

앞쪽에 있는 와일드카드 5개는 실행하는 주기를 설정하는 것이고 마지막에 있는 <명령어>는 해당 주기에 따라 실행되는 명령어 이다.

표현식

*****
분(0-59)시간(0-23)일(1-31)월(1-12)요일(1-7)

특수문자

특수문자설명
*모든값
-범위 지정
,여러 값을 지정
/증가하는 값을 지정 (초기값/증가값)
L마지막 값 지정

🗣 예시

0 3 * * 2 <명령어> : 매주 화요일 오전 3시에 <명령어> 실행

0,30 * * * * <명령어> : 매일 매시간 0분, 30분에 <명령어> 실행

0-30 3 * * * <명령어> : 매일 3시부터 30분까지 매분마다 <명령어> 실행

*/10 3 * * * <명령어> : 매일 3시부터 매 10분마다 <명령어> 실행

0 15 10 L * <명령어> : 매월 말일 오전 10시 15분에 <명령어> 실행

3. 적용

터미널에서 crontab -l 명령어를 실행한다.

저장을 하면 자동으로 예약이 되고 crontab -l 명령어를 통하여 작업을 확인 할 수 있다.

4. 로그 확인

* * * * * date >> /path/logfile.log 를 통하여 로그를 남길 수 있다.

crontab을 다시 설정하고 로그를 확인해보면 잘 실행되고 있는 것을 확인 할 수 있다.

SpringBoot에서 Cron 사용

SpringBoot에서 cron은 6자리로 되어있고 맨 앞에 초 가 생기고 나머지는 그대로 라고 보면 된다.


스프링부트에서 사용하려면 @EnableScheduling을 붙여주어야 하고
@Scheduled를 정기적으로 실행하고 싶은 메소드에 붙여 놓으면 된다.


매 1초마다 실행되는 것을 볼 수 있다.

참고

https://wonos.tistory.com/244

profile
총명한 개발자
post-custom-banner

2개의 댓글

comment-user-thumbnail
2023년 6월 29일

잘 읽고갑니다 🙇🏻‍♀️💡

1개의 답글