Skip to content

Node.js 定时任务(node-schedule)

定时任务用于在预定时间点或间隔执行任务(备份、报表、清理等)。

bash
npm install node-schedule

Cron 表达式

* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ └── 星期(0-6,0=周日)
│ │ │ │ └──── 月份(1-12)
│ │ │ └────── 日(1-31)
│ │ └──────── 小时(0-23)
│ └────────── 分钟(0-59)
└──────────── 秒(0-59)

常用示例

表达式含义
0 0 3 * * *每天凌晨 3 点
0 30 9 * * 1-5工作日 9:30
0 */30 * * * *每 30 分钟
0 0 0 1 * *每月 1 号零点
0 0 * * * 0每周日整点

特殊字符

字符含义
*任意值
,列表(1,3,5
-范围(1-5
/步进(*/5 每 5 个)
L最后一天

代码使用

js
import schedule from 'node-schedule'

// Cron 风格
const job = schedule.scheduleJob('0 0 3 * * *', () => {
  console.log('每天凌晨3点执行')
})

// Date 风格(指定时间点)
const date = new Date('2024-12-25 08:00:00')
schedule.scheduleJob(date, () => console.log('圣诞快乐'))

// 取消任务
job.cancel()

典型场景

  • 数据备份(每天凌晨)
  • 日志清理(每周一)
  • 报表生成(每月 1 号)
  • 缓存刷新(每 30 分钟)
  • 定时邮件推送