定时任务
基于 NestJS 定时器实现后台任务调度。
内置任务
| 任务名 | 说明 | 执行周期 |
|---|---|---|
| 清理过期 Token | 删除已过期的 Redis Session | 每小时 |
| 日志归档 | 将旧日志迁移到历史表 | 每天 02:00 |
自定义任务
使用 @Cron() 装饰器注册定时任务:
typescript
import { Cron } from '@nestjs/schedule';
@Injectable()
export class TasksService {
@Cron('0 30 9 * * * 1-5') // 周一到周五 9:30
handleWeekdayReport() {
console.log('生成工作日报');
}
@Cron('*/15 * * * *') // 每 15 分钟
handleHealthCheck() {
console.log('健康检查');
}
}启用调度
在 app.module.ts 中注册 ScheduleModule.forRoot():
typescript
import { ScheduleModule } from '@nestjs/schedule';
@Module({
imports: [
ScheduleModule.forRoot(),
// ...
],
})
export class AppModule {}下一步:
