- 创建项目
- Nest 控制器
- nest 配置路由请求数据
- Nest 服务
- Nest 模块
- 配置静态资源
- 配置模板引擎
- Cookie 的使用
- Session 的使用
- 跨域,前缀路径、网站安全、请求限速
- 管道、守卫、拦截器、过滤器、中间件
- 一例看懂中间件、守卫、管道、异常过滤器、拦截器
- 数据验证
- 配置抽离
- 环境配置
- 文件上传与下载
- 实现图片随机验证码
- 邮件服务
- nest 基于 possport + jwt 做登陆验证
- 对数据库的密码加密:md5 和 bcryptjs
- 角色权限
- 定时任务
- 接入 Swagger 接口文档
- nest 连接 Mongodb
- typeORM 操作 Mysql 数据库
- nest 统一处理数据库操作的查询结果
- 数据库实体设计与操作
- typeorm 增删改查操作
- typeorm 使用事务的 3 种方式
- typeorm 一对一关系设计与增删改查
- typeorm 一对多和多对一关系设计与增删改查
- typeorm 多对多关系设计与增删改查
- nest 连接 Redis
- 集成 redis 实现单点登录
- Q:nestJS 注入其他依赖时为什么还需要导入其 module
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
定时任务
nest 如何开启定时任务?
定时任务场景
每天定时更新,定时发送邮件
没有 controller,因为定时任务是自动完成的
yarn add @nestjs/schedule
// src/tasks/task.module.ts import { Module } from '@nestjs/common'; import { TasksService } from './tasks.service'; @Module({ providers: [TasksService], }) export class TasksModule {}
在这里编写你的定时任务
// src/tasks/task.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); @Cron('45 * * * * *') 每隔 45 秒执行一次 handleCron() { this.logger.debug('Called when the second is 45'); } @Interval(10000) 每隔 10 秒执行一次 handleInterval() { this.logger.debug('Called every 10 seconds'); } @Timeout(5000) 5 秒只执行一次 handleTimeout() { this.logger.debug('Called once after 5 seconds'); } }
自定义定时时间
* * * * * * 分别对应的意思: 第 1 个星:秒 第 2 个星:分钟 第 3 个星:小时 第 4 个星:一个月中的第几天 第 5 个星:月 第 6 个星:一个星期中的第几天 如: 45 * * * * *:每隔 45 秒执行一次
挂载-使用
// app.module.ts import { TasksModule } from './tasks/task.module'; import { ScheduleModule } from '@nestjs/schedule'; imports: [ ConfigModule.load(path.resolve(__dirname, 'config', '**/!(*.d).{ts,js}')), ScheduleModule.forRoot(), TasksModule, ],
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论