用途:本技能面向 NestJS 项目的任务调度,使用 @nestjs/schedule 模块在固定时间、周期或延迟后执行代码,适用于后台作业、定时报表、数据备份清理、定时通知和动态管理定时任务等场景。
主要能力:支持 cron 表达式(含可选秒字段,可用 CronExpression 预设常量)、@Interval 固定间隔任务、@Timeout 延迟一次性任务;支持任务命名、时区设置(如 America/New_York、Europe/London、Asia/Tokyo)和禁用开关;可通过 SchedulerRegistry 动态添加、查询、启动、停止和删除 cron 任务、interval 与 timeout;官方资料也给出数据库清理、定时报表、数据同步、缓存预热、通知服务、错误处理与测试等示例。
使用方式:先安装依赖:npm install @nestjs/schedule,在模块中导入 ScheduleModule.forRoot(),再在服务的可注入类上用 @Cron、@Interval、@Timeout 装饰方法。动态调度时注入 SchedulerRegistry,使用 addCronJob、deleteCronJob、getCronJobs、getCronJob 等方法,interval 与 timeout 通过原生 setInterval/setTimeout 注册到 registry。
限制与建议:资料建议记录日志、用 try-catch 处理错误、合理设置调度频率、为时间敏感任务指定时区、用队列处理耗时操作、命名任务便于管理并单独测试调度逻辑;示例中的仓储、缓存、邮件等具体实现依赖项目自身代码,资料未提供具体收费、平台或价格信息。