Node.js 定时任务(node-schedule)
定时任务用于在预定时间点或间隔执行任务(备份、报表、清理等)。
bash
npm install node-scheduleCron 表达式
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ └── 星期(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 分钟)
- 定时邮件推送