任务调度
第一步下载依赖
[//]:
yarn add @nestjs/schedule
yarn add -D @types/cron
第二步引入依赖 并且初始化
import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
@Module({
imports: [
ScheduleModule.forRoot(),
],
controllers: [],
providers: [],
})
第三步创建任务
import { Injectable } from "@nestjs/common";
import { Cron, Interval, Timeout, NestSchedule } from "nest-schedule";
@Injectable()
export class ScheduleService extends NestSchedule {
@Cron("0 0 0 * * *")
async cronJob() {
console.log("每天0点执行一次");
}
}
cron表达式
* * * * * * | 每秒执行 |
---|
45 * * * * * | 每分钟第 45 秒执行 |
* 10 * * * * | 每小时的第 10 分钟执行 |
0 */30 9-17 * * * | 每天 9-17 点 每 30 分钟执行一次 |
0 30 11 * * 1-5 | 每周星期一到星期五 11.30 执行一次 |
第四步引入任务
import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
import { ScheduleService } from './schedule.service';
@Module({
controllers: [],
providers: [ScheduleService],
})