공부 내용 정리

NestJS 스케줄러란?

blockchoin 2025. 8. 5. 17:40

1. 크론 스케줄러(Cron Scheduler)란?

크론(Cron)은 지정한 시간마다 자동으로 작업을 수행하는 스케줄러입니다.

  • 리눅스 환경에서는 crontab -e 명령어를 통해 설정할 수 있고,
  • NestJS에서는 @nestjs/schedule 패키지를 통해 Cron 기능을 사용할 수 있습니다.

2. Cron 표현식 구조

0~59 * (매초)
0~59 * (매분)
0~23 * (매시간)
1~31 * (매일)
1~12 * (매월)
요일 0~7 (0과 7은 일요일) * (매일)
  • * → 모든 값 (매시각 / 매일)
  • 예: 0 * * * * * → 매 분 0초마다 실행

3. NestJS에서 크론 사용하기 (@nestjs/schedule)

NestJS에서는 스케쥴러 패키지를 설치한 후, 아래와 같은 데코레이터를 사용해 작업을 예약할 수 있습니다.

 

@Cron() CRON 표현식 기반으로 주기적 실행
@Interval(ms) 일정 간격(ms) 마다 반복 실행
@Timeout(ms) 일정 시간(ms) 후 딱 1번만 실행
 

4. 설치 방법

(1) 설치 명령어 : npm install @nestjs/schedule

(2) AppModule 설정


5. Logger 사용법 (NestJS 내장 Logger)

NestJS에서는 Logger 클래스를 통해 서버에서 발생하는 로그를 남길 수 있습니다.

log() 일반적인 정보 로그
warn() 경고 메시지
error() 에러 메시지

 

6. 실사용 예시

(1) 스케줄러 컨트롤러 등록

30초마다 account1 잔액 조회 @Cron(CronExpression.EVERY_30_SECONDS)
10초마다 account1 → account2 1ETH 전송 (10회 반복) @Cron(CronExpression.EVERY_10_SECONDS)

(2)서비스에서 트랜잭션 로직 + 로그 기능 사용

'공부 내용 정리' 카테고리의 다른 글

SQL 고급 기능  (3) 2025.08.08
SQL 기본 문법 정리  (3) 2025.08.07
RESTful 설계란?  (1) 2025.08.04
NestJS의 Interceptor란  (0) 2025.08.01
API 요청 처리 방식  (0) 2025.07.31