【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
相关文章
|
3月前
|
JavaScript
Nest.js 实战 (十一):配置热重载 HMR 给服务提提速
这篇文章介绍了Nest.js服务在应用程序引导过程中,TypeScript编译对效率的影响,以及如何通过使用webpackHMR来降低应用实例化的时间。文章包含具体教程,指导读者如何在项目中安装依赖包,并在根目录下新增webpack配置文件webpack-hmr.config.js来调整HMR相关的配置。最后,文章总结了如何通过自定义webpack配置来更好地控制HMR行为。
|
4月前
|
缓存 中间件
Nest.js 实战 (九):使用拦截器记录用户 CURD 操作日志
这篇文章介绍了在Nest.js中如何实现记录用户CURD操作的需求。首先解释了什么是拦截器以及拦截器的作用,然后通过创建Prisma模型,添加Log模型,并通过编写LoggerInterceptor拦截器,实现了记录用户操作的功能。最后通过效果演示和总结,强调了使用拦截器实现此功能的有效性。
|
2月前
|
SQL 前端开发 JavaScript
Nest.js 实战 (十五):前后端分离项目部署的最佳实践
这篇文章介绍了如何使用现代前端框架Vue3和后端Node.js框架Nest.js实现的前后端分离架构的应用,并将其部署到生产环境。文章涵盖了准备阶段,包括云服务器的设置、1Panel面板的安装、数据库的安装、域名的实名认证和备案、SSL证书的申请。在部署Node服务环节,包括了Node.js环境的创建、数据库的配置、用户名和密码的设置、网站信息的填写、静态网站的部署、反向代理的配置以及可能遇到的常见问题。最后,作者总结了部署经验,并希望对读者有所帮助。
206 11
|
5月前
|
存储 中间件 文件存储
Nest.js 实战 (五):如何实现文件本地上传
这篇文章介绍了使用Nest框架和multer中间件包实现文件上传功能的过程。首先,作者在开发用户管理模块时遇到了需要上传用户头像的需求,因此开发了文件上传功能。文章详细介绍了如何安装依赖,如何处理单个文件上传,如何在模块层注册并配置文件上传路径,并以代码形式展示了如何实现这些功能。最后,作者对使用第三方平台存储文件进行了说明,并建议业务量大的公司很少用上传到服务器本地的方式,该方式更适合个人站点、博客使用。
|
6月前
|
JavaScript Shell 开发者
怎样使用Nest.js快速构建高效Node.js应用?
这篇博客介绍了Nest.js,一个基于TypeScript的Node.js框架,适用于构建可维护和可扩展的服务器端应用。文章引导读者快速入门,包括安装Node.js和Nest.js CLI,创建新项目,安装依赖以及启动开发服务器。通过访问`http://localhost:3000`,可以看到"Hello World!",证明应用已成功运行。Nest.js因其模块化架构和强大的功能,成为现代Web开发的热门选择。
|
前端开发 JavaScript Java
【Nest系列】4.Nest 核心概念:模块
本文介绍了经典的 MVC 分层架构,以及各层和 Nest 应用的对照。然后讲解了 Nest 模块的具体定义,使用 @Module 装饰器声明的类,就是模块。@Module() 接收一些信息来描述此模块的构成,主要是声明此模块所依赖的其他模块,控制器,提供者,和要导出的供其他模块所使用的部分。
164 0
【Nest系列】4.Nest 核心概念:模块
|
JSON 前端开发 JavaScript
【Nest系列】5. Nest 核心概念:控制器
上篇文章《Nest 核心概念:模块》中,我们介绍了 Nest 的模块,它是组织 Nest 应用的基本结构。Nest 应用接收请求,交给控制器处理请求,控制器中又调用服务,完成具体的业务逻辑,最后将结果响应给客户端。 本文会详细介绍控制器的用法,其实就是通过各类装饰器处理不同的请求和传参。
214 0
【Nest系列】5. Nest 核心概念:控制器
|
测试技术 数据库
如何用nest中对环境变量等文件进行配置
如何用nest中对环境变量等文件进行配置
|
设计模式 开发框架 缓存
知道了,去卷后端 →「Nest.js 入门及实践」:)
知道了,去卷后端 →「Nest.js 入门及实践」:)
132 0
|
前端开发 数据可视化 JavaScript
Vue3 + Nest 实现权限管理系统 后端篇(一):NestJS入门与基础配置(上)
Vue3 + Nest 实现权限管理系统 后端篇(一):NestJS入门与基础配置(上)
871 0
下一篇
DataWorks