ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Nest教程】Nest项目增加定时任务

2021-02-25 09:53:22  阅读:391  来源: 互联网

标签:教程 schedule Nest nestjs debug import 定时 logger


定时任务对于项目来说,也是必不可少的,今天就来说一说在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],
})

运行项目
【Nest教程】Nest项目增加定时任务

定时任务已启动

4 其他模式

还有一些其他模式,

            • *:每一秒
  • 45 *:每分钟,在45秒

    • 10 :每小时一次,十分钟开始
  • 0 /30 9-17 :上午九时至下午五时,每三十分钟一次

  • 0 30 11 1-5:星期一至星期五上午11:30

标签:教程,schedule,Nest,nestjs,debug,import,定时,logger
来源: https://blog.51cto.com/15057855/2636320

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有