【Nest教程】Nest項目增長定時任務

定時任務對於項目來講,也是必不可少的,今天就來講一說在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],
})

運行項目
【Nest教程】Nest項目增長定時任務blog

定時任務已啓動教程

4 其餘模式get

還有一些其餘模式,

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

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

  • 0 30 11 1-5:星期一至星期五上午11:30
相關文章
相關標籤/搜索