【Nest教程】Nest项目增加定时任务
16lz
2021-02-25
定时任务对于项目来说,也是必不可少的,今天就来说一说在Nest项目中集成定时任务
Nest框架有实现定时任务的库@nestjs/schedule,官方教程参照:
https://docs.nestjs.com/techniques/task-scheduling
1 安装
首先安装依赖库
$ npm install --save @nestjs/schedule$ npm install --save-dev @types/cron
yarn安装也可以,我项目上使用的是yarn,如果npm安装完成项目运行报错,可以用yarn在重新安装一遍
2 添加到app.module
import { Module } from '@nestjs/common';import { ScheduleModule } from '@nestjs/schedule';@Module({ imports: [ ScheduleModule.forRoot() ],})export class AppModule {}
3 使用
这里只演示,具体使用请根据项目,src下新建schedule文件夹,文件夹内新建tasks.service.ts,
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中添加
import { Module } from '@nestjs/common';import { TasksService } from './schedule/tasks.service';@Module({ providers: [AppService, TasksService],})
运行项目
定时任务已启动
4 其他模式
还有一些其他模式,
- *:每一秒
45 *:每分钟,在45秒
- 10 :每小时一次,十分钟开始
0 /30 9-17 :上午九时至下午五时,每三十分钟一次
- 0 30 11 1-5:星期一至星期五上午11:30
更多相关文章
- win10 安装 MySQL8.0版本
- github代码管理
- VS Nuget的使用以及VS Code与git介绍
- C#中使用opencv处理图像
- "Emgu.CV.CvInvoke”的类型初始值设定项引发异常 解决办法
- flex元素常用属性
- jenkins + supervisor + ansible 实现netcore程序的多机一键部署
- flex容器与项目的常用属性
- 怎样为树莓派安装Rust开发包和相关实用软件?