[Nest.js] Task scheduling

Woong·2025년 2월 18일
0

Nest.js, Node.js

목록 보기
31/31

의존성 설치

npm install --save @nestjs/schedule

  • 최상위 AppModule 에서 global 로 register
import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';

@Module({
  imports: [
    ScheduleModule.forRoot()
  ],
})
export class AppModule {}

cronjob 설정

  • 메소드에 @Cron decorator 를 통해 스케줄 정의

import { Injectable, Logger } from '@nestjs/common';
import { Cron } from '@nestjs/schedule';

@Injectable()
export class TasksService {
  private readonly logger = new Logger(TasksService.name);

  @Cron('45 * * * * *')
  handleCron() {
    this.logger.debug('Called when the current second is 45');
  }
}

interval 설정

  • 일정 시간마다 실행
@Interval(10000)
handleInterval() {
  this.logger.debug('Called every 10 seconds');
}

timeout

  • 애플리케이션 시작 후 일정 시간 지난 후 단 한번만 실행
    • method timeout 이 아님
@Timeout(5000)
handleTimeout() {
  this.logger.debug('Called once after 5 seconds');
}

reference

0개의 댓글