Skip to content

定时任务

  1. 安装依赖
sh
npm install node-schedule
  • 一般定时任务都是用cron表达式去表示时间的
js
const schedule = require('node-schedule')
// 开启定时任务 0 0 0 * * * 表示每天的0点0分0秒执行
schedule.scheduleJob('0 0 0 * * *', () => {
    console.log('定时任务')
})
// 停止定时任务
schedule.cancelJob('0 0 0 * * *', () => {
    console.log('定时任务')
})
// *    *    *    *    *    *
// ┬    ┬    ┬    ┬    ┬    ┬
// │    │    │    │    │    │
// │    │    │    │    │    └── 星期(0 - 6,0表示星期日)
// │    │    │    │    └───── 月份(1 - 12)
// │    │    │    └────────── 日(1 - 31)
// │    │    └─────────────── 小时(0 - 23)
// │    └──────────────────── 分钟(0 - 59)
// └───────────────────────── 秒(0 - 59)
  • 数值:表示具体的时间单位,如1、2、10等。
  • 范围:使用-连接起始和结束的数值,表示一个范围内的所有值,如1-5表示1到5的所有数值。
  • 通配符:使用表示匹配该字段的所有可能值,如表示每分钟、每小时、每天等。
  • 逗号分隔:使用逗号分隔多个数值或范围,表示匹配其中任意一个值,如1,3表示1或3。
  • 步长:使用/表示步长,用于指定间隔的数值,如*/5表示每隔5个单位执行一次。
  • 特殊字符:Cron表达式还支持一些特殊字符来表示特定的含义,如?用于替代日和星期字段中的任意值,L表示最后一天,W表示最近的工作日等。

以下是一些常见的Cron表达式示例:

  • * * * * * *:每秒执行一次任务。
  • 0 * * * * *:每分钟的整点执行一次任务。
  • 0 0 * * * *:每小时的整点执行一次任务。
  • 0 0 * * 1 *:每周一的午夜执行一次任务。
  • 0 0 1 * * *:每月的1号午夜执行一次任务。
  • 0 0 1 1 * *:每年的1月1日午夜执行一次任务。