NestJS · · 1 min read
13. 태스크 스케줄링
태스크 스케줄링은 정해진 시각·주기로 작업을 실행한다.
@nestjs/schedule로 cron·인터벌·타임아웃을 선언적으로 등록한다.
13.1. 설치와 등록
npm install @nestjs/schedule
@Module({ imports: [ScheduleModule.forRoot()] })
export class AppModule {}
13.2. Cron / Interval / Timeout
@Injectable()
export class TasksService {
@Cron('0 0 * * *') // 매일 자정 (cron 표현식)
handleDailyBatch() {}
@Cron(CronExpression.EVERY_30_SECONDS)
handleFrequent() {}
@Interval(10000) // 10초마다
handleInterval() {}
@Timeout(5000) // 부팅 5초 후 1회
handleTimeout() {}
}
13.3. 동적 스케줄
SchedulerRegistry 를 주입하면 런타임에 잡을 추가·삭제·중지할 수 있다.