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

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

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],
})

复制

运行项目

image.png

定时任务已启动


4 其他模式

还有一些其他模式,

  • * * * * * *:每一秒
  • 45 * * * * *:每分钟,在45秒
  • * 10 * * * *:每小时一次,十分钟开始
  • 0 */30 9-17 * * *:上午九时至下午五时,每三十分钟一次
  • 0 30 11 * * 1-5:星期一至星期五上午11:30
目录
打赏
0
0
0
0
41
分享
相关文章
Nest.js 实战 (十一):配置热重载 HMR 给服务提提速
这篇文章介绍了Nest.js服务在应用程序引导过程中,TypeScript编译对效率的影响,以及如何通过使用webpackHMR来降低应用实例化的时间。文章包含具体教程,指导读者如何在项目中安装依赖包,并在根目录下新增webpack配置文件webpack-hmr.config.js来调整HMR相关的配置。最后,文章总结了如何通过自定义webpack配置来更好地控制HMR行为。
133 6
怎样使用Nest.js快速构建高效Node.js应用?
这篇博客介绍了Nest.js,一个基于TypeScript的Node.js框架,适用于构建可维护和可扩展的服务器端应用。文章引导读者快速入门,包括安装Node.js和Nest.js CLI,创建新项目,安装依赖以及启动开发服务器。通过访问`http://localhost:3000`,可以看到"Hello World!",证明应用已成功运行。Nest.js因其模块化架构和强大的功能,成为现代Web开发的热门选择。
120 0
前端学习笔记202307学习笔记第五十九天-react源码-创建任务并存放在任务队列4
前端学习笔记202307学习笔记第五十九天-react源码-创建任务并存放在任务队列4
76 0
|
10月前
|
源码阅读之 create-vite —— 阅读前的准备工作
源码阅读之 create-vite —— 阅读前的准备工作
107 0
【Nest系列】4.Nest 核心概念:模块
本文介绍了经典的 MVC 分层架构,以及各层和 Nest 应用的对照。然后讲解了 Nest 模块的具体定义,使用 @Module 装饰器声明的类,就是模块。@Module() 接收一些信息来描述此模块的构成,主要是声明此模块所依赖的其他模块,控制器,提供者,和要导出的供其他模块所使用的部分。
193 0
【Nest系列】4.Nest 核心概念:模块
【Nest系列】5. Nest 核心概念:控制器
上篇文章《Nest 核心概念:模块》中,我们介绍了 Nest 的模块,它是组织 Nest 应用的基本结构。Nest 应用接收请求,交给控制器处理请求,控制器中又调用服务,完成具体的业务逻辑,最后将结果响应给客户端。 本文会详细介绍控制器的用法,其实就是通过各类装饰器处理不同的请求和传参。
237 0
【Nest系列】5. Nest 核心概念:控制器
前端学习笔记202307学习笔记第五十九天-react源码-创建任务并存放在任务队列2
前端学习笔记202307学习笔记第五十九天-react源码-创建任务并存放在任务队列2
53 0
前端学习笔记202307学习笔记第五十九天-react源码-创建任务并存放在任务队列3
前端学习笔记202307学习笔记第五十九天-react源码-创建任务并存放在任务队列3
47 0
前端学习笔记202307学习笔记第五十九天-react源码-创建任务并存放在任务队列1
前端学习笔记202307学习笔记第五十九天-react源码-创建任务并存放在任务队列1
81 0