定时任务对于项目来讲,也是必不可少的,今天就来讲一说在Nest项目中集成定时任务npm
Nest框架有实现定时任务的库@nestjs/schedule,官方教程参照:
https://docs.nestjs.com/techniques/task-schedulingapp
1 安装
首先安装依赖库框架
$ npm install --save @nestjs/schedule $ npm install --save-dev @types/cron
yarn安装也能够,我项目上使用的是yarn,若是npm安装完成项目运行报错,能够用yarn在从新安装一遍ide
2 添加到app.modulethis
import { Module } from '@nestjs/common'; import { ScheduleModule } from '@nestjs/schedule'; @Module({ imports: [ ScheduleModule.forRoot() ], }) export class AppModule {}
3 使用
这里只演示,具体使用请根据项目,src下新建schedule文件夹,文件夹内新建tasks.service.ts,debug
import { Injectable, Logger } from '@nestjs/common'; import { Cron, Interval, Timeout } from '@nestjs/schedule'; @Injectable() export class TasksService { private readonly logger = new Logger(TasksService.name); constructor(private readonly exampleService: ExampleService) {} @Cron('45 * * * * *') handleCron() { this.logger.debug('该方法将在45秒标记处每分钟运行一次'); } @Interval(10000) handleInterval() { this.logger.debug('2'); } @Timeout(5000) handleTimeout() { this.logger.debug('3'); } @Interval(10000) sendEmail() { this.logger.debug('3'); } }
在app.module providers中添加code
import { Module } from '@nestjs/common'; import { TasksService } from './schedule/tasks.service'; @Module({ providers: [AppService, TasksService], })
运行项目blog
定时任务已启动教程
4 其余模式get
还有一些其余模式,
45 *:每分钟,在45秒
0 /30 9-17 :上午九时至下午五时,每三十分钟一次