【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
相关文章
|
小程序 Windows
uniapp运行微信小程序routeDone的错误问题
uniapp运行微信小程序routeDone的错误问题
2769 0
|
数据安全/隐私保护 内存技术
Freeswitch落地网关配置
假设Freeswitch服务器地址为192.168.0.204,网关地址为192.168.0.80;外呼前缀为0。
1683 0
实验:逆向分析sample_mal.exe文件
实验:逆向分析sample_mal.exe文件
|
10月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
598 4
|
数据可视化 算法 Python
【数字通信革命】深入剖析Python实现BPSK、QPSK到QAM信号调制的奥秘,解锁高速数据传输的密钥!
【8月更文挑战第2天】在通信系统中,信号调制至关重要,它将信息嵌入载波信号中以便传输。本文通过Python实现三种基本调制技术:BPSK、QPSK和16-QAM,并提供示例代码。首先需安装NumPy、SciPy和Matplotlib库。BPSK是最简单的相位调制,每个符号携带一位信息;QPSK则每个符号携带两位信息,通过四种相位表示;16-QAM结合幅度和相位调制,每个符号携带更多比特信息。本文提供的代码演示了这些调制方式的实现过程,并利用Matplotlib可视化结果。了解这些调制技术有助于深入探索信号处理领域。
549 18
|
存储 分布式计算 资源调度
Hadoop集群的扩展性与容错能力
【8月更文第28天】Hadoop 是一种用于处理和存储大规模数据集的开源软件框架。它由两个核心组件构成:Hadoop 分布式文件系统 (HDFS) 和 MapReduce 计算框架。Hadoop 的设计考虑了可扩展性和容错性,使其成为大规模数据处理的理想选择。
416 0
|
缓存 JSON 负载均衡
http请求grpc服务的最终解决方案
所有的rpc协议遵守着一个万变不离其宗的定律:调用方与服务提供方有一套约定的报文解析格式。nodejs做代理,http报文组装成grpc报文,必须依赖.proto文件中定义的消息体
2160 0
http请求grpc服务的最终解决方案
|
网络协议 Linux 开发工具
使用Xshell连接VMware上的Linux虚拟机
使用Xshell连接VMware上的Linux虚拟机
317 0
使用Xshell连接VMware上的Linux虚拟机
|
存储 NoSQL 关系型数据库
现代数据库技术及其应用
本文介绍了现代数据库技术的发展与应用。从关系型数据库到NoSQL数据库,再到分布式数据库,不同的技术在满足不同需求的同时也带来了新的挑战和机遇。我们将探讨这些数据库技术的特点、优势和适用场景,并提供一些实际应用案例。
|
JavaScript 前端开发 Java
带你入门——如何在nestjs中体验websocket
带你入门——如何在nestjs中体验websocket