ScheduleModule
Enables cron jobs, intervals, and timeouts via declarative decorators.
Syntax
ScheduleModule.forRoot() | @Cron(expr) | @Interval(ms) | @Timeout(ms) Parameters
| Name | Type | Required | Description |
|---|---|---|---|
expr | string | CronExpression | No | A cron expression for @Cron scheduling. |
Returns
DynamicModule — A module enabling the scheduler registry.
Examples
import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
@Module({ imports: [ScheduleModule.forRoot()] })
export class AppModule {}
import { Injectable, Logger } from '@nestjs/common';
import { Cron, CronExpression, Interval } from '@nestjs/schedule';
@Injectable()
export class TasksService {
private log = new Logger(TasksService.name);
@Cron(CronExpression.EVERY_DAY_AT_MIDNIGHT)
nightly() {
this.log.log('Running nightly job');
}
@Interval(10_000)
heartbeat() {
this.log.debug('tick');
}
}
Notes
Install @nestjs/schedule. Jobs run in the app process, so use a
distributed lock or queue for multi-instance deployments. Manage jobs
dynamically through SchedulerRegistry.