【Nest教程】Nest项目增加定时任务
【摘要】
定时任务对于项目来说,也是必不可少的,今天就来说一说在Nest项目中集成定时任务
Nest框架有实现定时任务的库@nestjs/schedule,官方教程参照:
https://docs.nestjs.com/techniques/task-scheduling
1 安装
首先安装依赖库
$...
定时任务对于项目来说,也是必不可少的,今天就来说一说在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
文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/NMGWAP/article/details/125067040
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)