定时任务
原创2026/3/5大约 6 分钟
安装
npm install --save @nestjs/schedule配置
import { Module } from '@nestjs/common'
import { AppController } from './app.controller'
import { AppService } from './app.service'
import { ScheduleModule } from '@nestjs/schedule'
@Module({
imports: [ScheduleModule.forRoot()],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}使用
import { Injectable } from '@nestjs/common'
import { Cron, CronExpression } from '@nestjs/schedule'
@Injectable()
export class AppService {
constructor() {}
@Cron('45 * * * * *') // 每分钟的45秒节点处会自动执行
async v1() {
console.log(1)
}
@Cron(CronExpression.EVERY_30_SECONDS) // 每间隔30秒会自动执行
async v2() {
console.log(2)
}
}内置的枚举
export declare enum CronExpression {
EVERY_SECOND = '* * * * * *',
EVERY_5_SECONDS = '*/5 * * * * *',
EVERY_10_SECONDS = '*/10 * * * * *',
EVERY_30_SECONDS = '*/30 * * * * *',
EVERY_MINUTE = '*/1 * * * *',
EVERY_5_MINUTES = '0 */5 * * * *',
EVERY_10_MINUTES = '0 */10 * * * *',
EVERY_30_MINUTES = '0 */30 * * * *',
EVERY_HOUR = '0 0-23/1 * * *',
EVERY_2_HOURS = '0 0-23/2 * * *',
EVERY_3_HOURS = '0 0-23/3 * * *',
EVERY_4_HOURS = '0 0-23/4 * * *',
EVERY_5_HOURS = '0 0-23/5 * * *',
EVERY_6_HOURS = '0 0-23/6 * * *',
EVERY_7_HOURS = '0 0-23/7 * * *',
EVERY_8_HOURS = '0 0-23/8 * * *',
EVERY_9_HOURS = '0 0-23/9 * * *',
EVERY_10_HOURS = '0 0-23/10 * * *',
EVERY_11_HOURS = '0 0-23/11 * * *',
EVERY_12_HOURS = '0 0-23/12 * * *',
EVERY_DAY_AT_1AM = '0 01 * * *',
EVERY_DAY_AT_2AM = '0 02 * * *',
EVERY_DAY_AT_3AM = '0 03 * * *',
EVERY_DAY_AT_4AM = '0 04 * * *',
EVERY_DAY_AT_5AM = '0 05 * * *',
EVERY_DAY_AT_6AM = '0 06 * * *',
EVERY_DAY_AT_7AM = '0 07 * * *',
EVERY_DAY_AT_8AM = '0 08 * * *',
EVERY_DAY_AT_9AM = '0 09 * * *',
EVERY_DAY_AT_10AM = '0 10 * * *',
EVERY_DAY_AT_11AM = '0 11 * * *',
EVERY_DAY_AT_NOON = '0 12 * * *',
EVERY_DAY_AT_1PM = '0 13 * * *',
EVERY_DAY_AT_2PM = '0 14 * * *',
EVERY_DAY_AT_3PM = '0 15 * * *',
EVERY_DAY_AT_4PM = '0 16 * * *',
EVERY_DAY_AT_5PM = '0 17 * * *',
EVERY_DAY_AT_6PM = '0 18 * * *',
EVERY_DAY_AT_7PM = '0 19 * * *',
EVERY_DAY_AT_8PM = '0 20 * * *',
EVERY_DAY_AT_9PM = '0 21 * * *',
EVERY_DAY_AT_10PM = '0 22 * * *',
EVERY_DAY_AT_11PM = '0 23 * * *',
EVERY_DAY_AT_MIDNIGHT = '0 0 * * *',
EVERY_WEEK = '0 0 * * 0',
EVERY_WEEKDAY = '0 0 * * 1-5',
EVERY_WEEKEND = '0 0 * * 6,0',
EVERY_1ST_DAY_OF_MONTH_AT_MIDNIGHT = '0 0 1 * *',
EVERY_1ST_DAY_OF_MONTH_AT_NOON = '0 12 1 * *',
EVERY_2ND_HOUR = '0 */2 * * *',
EVERY_2ND_HOUR_FROM_1AM_THROUGH_11PM = '0 1-23/2 * * *',
EVERY_2ND_MONTH = '0 0 1 */2 *',
EVERY_QUARTER = '0 0 1 */3 *',
EVERY_6_MONTHS = '0 0 1 */6 *',
EVERY_YEAR = '0 0 1 0 *',
EVERY_30_MINUTES_BETWEEN_9AM_AND_5PM = '0 */30 9-17 * * *',
EVERY_30_MINUTES_BETWEEN_9AM_AND_6PM = '0 */30 9-18 * * *',
EVERY_30_MINUTES_BETWEEN_10AM_AND_7PM = '0 */30 10-19 * * *',
MONDAY_TO_FRIDAY_AT_1AM = '0 0 01 * * 1-5',
MONDAY_TO_FRIDAY_AT_2AM = '0 0 02 * * 1-5',
MONDAY_TO_FRIDAY_AT_3AM = '0 0 03 * * 1-5',
MONDAY_TO_FRIDAY_AT_4AM = '0 0 04 * * 1-5',
MONDAY_TO_FRIDAY_AT_5AM = '0 0 05 * * 1-5',
MONDAY_TO_FRIDAY_AT_6AM = '0 0 06 * * 1-5',
MONDAY_TO_FRIDAY_AT_7AM = '0 0 07 * * 1-5',
MONDAY_TO_FRIDAY_AT_8AM = '0 0 08 * * 1-5',
MONDAY_TO_FRIDAY_AT_9AM = '0 0 09 * * 1-5',
MONDAY_TO_FRIDAY_AT_09_30AM = '0 30 09 * * 1-5',
MONDAY_TO_FRIDAY_AT_10AM = '0 0 10 * * 1-5',
MONDAY_TO_FRIDAY_AT_11AM = '0 0 11 * * 1-5',
MONDAY_TO_FRIDAY_AT_11_30AM = '0 30 11 * * 1-5',
MONDAY_TO_FRIDAY_AT_12PM = '0 0 12 * * 1-5',
MONDAY_TO_FRIDAY_AT_1PM = '0 0 13 * * 1-5',
MONDAY_TO_FRIDAY_AT_2PM = '0 0 14 * * 1-5',
MONDAY_TO_FRIDAY_AT_3PM = '0 0 15 * * 1-5',
MONDAY_TO_FRIDAY_AT_4PM = '0 0 16 * * 1-5',
MONDAY_TO_FRIDAY_AT_5PM = '0 0 17 * * 1-5',
MONDAY_TO_FRIDAY_AT_6PM = '0 0 18 * * 1-5',
MONDAY_TO_FRIDAY_AT_7PM = '0 0 19 * * 1-5',
MONDAY_TO_FRIDAY_AT_8PM = '0 0 20 * * 1-5',
MONDAY_TO_FRIDAY_AT_9PM = '0 0 21 * * 1-5',
MONDAY_TO_FRIDAY_AT_10PM = '0 0 22 * * 1-5',
MONDAY_TO_FRIDAY_AT_11PM = '0 0 23 * * 1-5',
}EVERY_SECOND - 每秒钟触发一次任务。
EVERY_5_SECONDS - 每5秒钟触发一次任务。
EVERY_10_SECONDS - 每10秒钟触发一次任务。
EVERY_30_SECONDS - 每30秒钟触发一次任务。
EVERY_MINUTE - 每分钟触发一次任务。
EVERY_5_MINUTES - 每5分钟触发一次任务。
EVERY_10_MINUTES - 每10分钟触发一次任务。
EVERY_30_MINUTES - 每30分钟触发一次任务。
EVERY_HOUR - 每小时触发一次任务。
EVERY_2_HOURS - 每2小时触发一次任务。
EVERY_3_HOURS - 每3小时触发一次任务。
EVERY_4_HOURS - 每4小时触发一次任务。
EVERY_5_HOURS - 每5小时触发一次任务。
EVERY_6_HOURS - 每6小时触发一次任务。
EVERY_7_HOURS - 每7小时触发一次任务。
EVERY_8_HOURS - 每8小时触发一次任务。
EVERY_9_HOURS - 每9小时触发一次任务。
EVERY_10_HOURS - 每10小时触发一次任务。
EVERY_11_HOURS - 每11小时触发一次任务。
EVERY_12_HOURS - 每12小时触发一次任务。
EVERY_DAY_AT_1AM - 每天凌晨1点触发一次任务。
EVERY_DAY_AT_2AM - 每天凌晨2点触发一次任务。
EVERY_DAY_AT_3AM - 每天凌晨3点触发一次任务。
EVERY_DAY_AT_4AM - 每天凌晨4点触发一次任务。
EVERY_DAY_AT_5AM - 每天凌晨5点触发一次任务。
EVERY_DAY_AT_6AM - 每天早上6点触发一次任务。
EVERY_DAY_AT_7AM - 每天早上7点触发一次任务。
EVERY_DAY_AT_8AM - 每天早上8点触发一次任务。
EVERY_DAY_AT_9AM - 每天早上9点触发一次任务。
EVERY_DAY_AT_10AM - 每天早上10点触发一次任务。
EVERY_DAY_AT_11AM - 每天早上11点触发一次任务。
EVERY_DAY_AT_NOON - 每天中午12点触发一次任务。
EVERY_DAY_AT_1PM - 每天下午1点触发一次任务。
EVERY_DAY_AT_2PM - 每天下午2点触发一次任务。
EVERY_DAY_AT_3PM - 每天下午3点触发一次任务。
EVERY_DAY_AT_4PM - 每天下午4点触发一次任务。
EVERY_DAY_AT_5PM - 每天下午5点触发一次任务。
EVERY_DAY_AT_6PM - 每天下午6点触发一次任务。
EVERY_DAY_AT_7PM - 每天晚上7点触发一次任务。
EVERY_DAY_AT_8PM - 每天晚上8点触发一次任务。
EVERY_DAY_AT_9PM - 每天晚上9点触发一次任务。
EVERY_DAY_AT_10PM - 每天晚上10点触发一次任务。
EVERY_DAY_AT_11PM - 每天晚上11点触发一次任务。
EVERY_DAY_AT_MIDNIGHT - 每天午夜(0点)触发一次任务。
EVERY_WEEK - 每周触发一次任务(星期日)。
EVERY_WEEKDAY - 每工作日(星期一至星期五)触发一次任务。
EVERY_WEEKEND - 每周末(星期六和星期日)触发一次任务。
EVERY_1ST_DAY_OF_MONTH_AT_MIDNIGHT - 每月的第1天午夜(0点)触发一次任务。
EVERY_1ST_DAY_OF_MONTH_AT_NOON - 每月的第1天中午(12点)触发一次任务。
EVERY_2ND_HOUR - 每2小时触发一次任务。
EVERY_2ND_HOUR_FROM_1AM_THROUGH_11PM - 从凌晨1点到晚上11点,每2小时触发一次任务。
EVERY_2ND_MONTH - 每2个月触发一次任务。
EVERY_QUARTER - 每季度触发一次任务。
EVERY_6_MONTHS - 每半年触发一次任务。
EVERY_YEAR - 每年触发一次任务。
EVERY_30_MINUTES_BETWEEN_9AM_AND_5PM - 每天上午9点到下午5点之间,每30分钟触发一次任务。
EVERY_30_MINUTES_BETWEEN_9AM_AND_6PM - 每天上午9点到下午6点之间,每30分钟触发一次任务。
EVERY_30_MINUTES_BETWEEN_10AM_AND_7PM - 每天上午10点到下午7点之间,每30分钟触发一次任务。
MONDAY_TO_FRIDAY_AT_1AM - 每周一至周五凌晨1点触发一次任务。
MONDAY_TO_FRIDAY_AT_2AM - 每周一至周五凌晨2点触发一次任务。
MONDAY_TO_FRIDAY_AT_3AM - 每周一至周五凌晨3点触发一次任务。
MONDAY_TO_FRIDAY_AT_4AM - 每周一至周五凌晨4点触发一次任务。
MONDAY_TO_FRIDAY_AT_5AM - 每周一至周五凌晨5点触发一次任务。
MONDAY_TO_FRIDAY_AT_6AM - 每周一至周五早上6点触发一次任务。
MONDAY_TO_FRIDAY_AT_7AM - 每周一至周五早上7点触发一次任务。
MONDAY_TO_FRIDAY_AT_8AM - 每周一至周五早上8点触发一次任务。
MONDAY_TO_FRIDAY_AT_9AM - 每周一至周五早上9点触发一次任务。
MONDAY_TO_FRIDAY_AT_09_30AM - 每周一至周五早上9点30分触发一次任务。
MONDAY_TO_FRIDAY_AT_10AM - 每周一至周五早上10点触发一次任务。
MONDAY_TO_FRIDAY_AT_11AM - 每周一至周五早上11点触发一次任务。
MONDAY_TO_FRIDAY_AT_11_30AM - 每周一至周五早上11点30分触发一次任务。
MONDAY_TO_FRIDAY_AT_12PM - 每周一至周五中午12点触发一次任务。
MONDAY_TO_FRIDAY_AT_1PM - 每周一至周五下午1点触发一次任务。
MONDAY_TO_FRIDAY_AT_2PM - 每周一至周五下午2点触发一次任务。
MONDAY_TO_FRIDAY_AT_3PM - 每周一至周五下午3点触发一次任务。
MONDAY_TO_FRIDAY_AT_4PM - 每周一至周五下午4点触发一次任务。
MONDAY_TO_FRIDAY_AT_5PM - 每周一至周五下午5点触发一次任务。
MONDAY_TO_FRIDAY_AT_6PM - 每周一至周五下午6点触发一次任务。
MONDAY_TO_FRIDAY_AT_7PM - 每周一至周五晚上7点触发一次任务。
MONDAY_TO_FRIDAY_AT_8PM - 每周一至周五晚上8点触发一次任务。
MONDAY_TO_FRIDAY_AT_9PM - 每周一至周五晚上9点触发一次任务。
MONDAY_TO_FRIDAY_AT_10PM - 每周一至周五晚上10点触发一次任务。
MONDAY_TO_FRIDAY_AT_11PM - 每周一至周五晚上11点触发一次任务。至此,本章节的学习就到此结束了,如有疑惑,可对接技术客服进行相关咨询。