[Nestjs] 集成定时器以及使用方法

简介: 在后台开发中,我们经常遇到定时的需求,比如每天早上八点推送日志,推送待办,推送天气预报等。接下来简单介绍Nestjs集成定时器的简单使用方法!

在后台开发中,我们经常遇到定时的需求,比如每天早上八点推送日志,推送待办,推送天气预报等。接下来简单介绍Nestjs集成定时器的简单使用方法!


在 NestJS 中集成定时器可以使用 @nestjs/schedule 模块,它提供了一种简单而强大的方式来执行定时任务。下面是集成定时器的步骤:


安装 @nestjs/schedule 模块:使用 npm 或者 yarn 安装 @nestjs/schedule 模块。

npm install --save @nestjs/schedule

配置模块:在你的 NestJS 应用的根模块(通常是 app.module.ts)中导入 ScheduleModule 并添加到 imports 数组中。

import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
  imports: [ScheduleModule.forRoot()],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}


创建定时任务:在任何一个可注入类(比如服务)中创建定时任务。首先,使用 @Injectable() 装饰器将该类标记为可注入。然后,使用 @Cron() 装饰器来指定定时任务的执行时间。可以使用 Cron 表达式或者预定义的字符串(如 '0 * * * *' 表示每小时的整点)。

import { Injectable } from '@nestjs/common';
import { Cron } from '@nestjs/schedule';
@Injectable()
export class MyTaskService {
  @Cron('0 * * * *') // 每小时的整点执行
  handleCron() {
    console.log('定时任务每小时执行一次');
  }
}

使用定时任务:在需要使用定时任务的地方,比如控制器或者其他服务中,将定时任务的类注入进来,并调用其方法。

import { Controller, Get } from '@nestjs/common';
import { MyTaskService } from './my-task.service';
@Controller('cats')
export class CatsController {
  constructor(private readonly myTaskService: MyTaskService) {}
  @Get()
  findAll(): string {
    this.myTaskService.handleCron(); // 执行定时任务方法
    return 'This action returns all cats';
  }
}


这时我们启动服务,定时器就会正常触发了!


更多跟定时器相关的API请查阅官方文档

相关文章
|
30天前
|
运维 Serverless 对象存储
函数计算产品使用问题之如何使用Flask框架支持Stream模式
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
XML 移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable定时捕获事件代码升级修改
ruoyi-nbcio-plus基于vue3的flowable定时捕获事件代码升级修改
116 0
|
前端开发 JavaScript
dva的简单使用流程
dva的简单使用流程
80 0
|
4月前
|
Web App开发 JavaScript 前端开发
Express 框架的特点、使用方法以及相关的常用功能和中间件
Express 框架的特点、使用方法以及相关的常用功能和中间件
285 1
React+Hook+ts+antDesign实现伪定时调用接口功能
React+Hook+ts+antDesign实现伪定时调用接口功能
64 0
|
前端开发
【React工作记录八十五】React+Hook+ts+antDesign实现伪定时调用接口功能
【React工作记录八十五】React+Hook+ts+antDesign实现伪定时调用接口功能
77 0
|
数据库 Python
python的flask的请求钩子的使用方法和使用场景
python的flask的请求钩子的使用方法和使用场景
126 0
|
机器学习/深度学习 存储 JavaScript
你就是函数响应式编程(FRP)啊?!【附 RxJS 实战】
什么是 FRP? 英文全称是:Functional Reactive Programming,翻译过来就是:函数响应式编程。
|
JavaScript
【第一篇】NodeJs模块篇——Path模块的基本使用|梦小慀
path 是 node.js 官方提供的一个对路径处理很实用的工具模块,多种函数对来访问文件系统并与文件系统进行交互。
200 1
【第一篇】NodeJs模块篇——Path模块的基本使用|梦小慀
|
前端开发 开发者
FastApi-19-高级用法
FastApi-19-高级用法
385 0