【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
相关文章
|
11月前
|
Kubernetes Cloud Native jenkins
下篇:使用jenkins发布go项目到k8s,接上篇的手工体验改造为自动化发布
下篇:使用jenkins发布go项目到k8s,接上篇的手工体验改造为自动化发布
481 1
|
存储 资源调度 数据库
Vercel 部署 NestJS应用
Vercel 部署 NestJS应用
779 0
|
8月前
|
前端开发 JavaScript Java
【Nest系列】4.Nest 核心概念:模块
本文介绍了经典的 MVC 分层架构,以及各层和 Nest 应用的对照。然后讲解了 Nest 模块的具体定义,使用 @Module 装饰器声明的类,就是模块。@Module() 接收一些信息来描述此模块的构成,主要是声明此模块所依赖的其他模块,控制器,提供者,和要导出的供其他模块所使用的部分。
77 0
【Nest系列】4.Nest 核心概念:模块
|
8月前
|
JSON 前端开发 JavaScript
【Nest系列】5. Nest 核心概念:控制器
上篇文章《Nest 核心概念:模块》中,我们介绍了 Nest 的模块,它是组织 Nest 应用的基本结构。Nest 应用接收请求,交给控制器处理请求,控制器中又调用服务,完成具体的业务逻辑,最后将结果响应给客户端。 本文会详细介绍控制器的用法,其实就是通过各类装饰器处理不同的请求和传参。
129 0
【Nest系列】5. Nest 核心概念:控制器
|
8月前
|
前端开发
【React工作记录八十五】React+Hook+ts+antDesign实现伪定时调用接口功能
【React工作记录八十五】React+Hook+ts+antDesign实现伪定时调用接口功能
55 0
|
前端开发
前端学习案例15-HMR(热模块更新)
前端学习案例15-HMR(热模块更新)
56 0
前端学习案例15-HMR(热模块更新)
Creator 插件hmr调研
Creator 插件hmr调研
76 0
|
JavaScript 前端开发 搜索推荐
Nest项目部署的最佳方式
Nest项目部署的最佳方式
Nest项目部署的最佳方式
|
前端开发 JavaScript 容器
【React高级技术】合成事件以及 Test Utilities测试框架在Facebook内部进行测试
【React高级技术】合成事件以及 Test Utilities测试框架在Facebook内部进行测试
【Nest教程】为项目增加个自定义过滤器
【Nest教程】为项目增加个自定义过滤器
176 0
【Nest教程】为项目增加个自定义过滤器