关于 node-cron 自动化
npm install --save node-cron
cron.schedule('* * * * * *', () => { console.log('running a task every minute'); });
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ │
│ │ │ │ │ └ 星期几(0 - 7) (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字符串作为rule时,建议写完整,可读性比较好。
常用规则
* * * * * * :每秒执行
*/5 * * * * * :每5秒执行
* 30 * * * * :每30分钟执行
*/10 30 * * * * :每30分钟的10秒执行
2,4,6 * * * * * :每个2秒,4秒和6秒执行
0 0 0 ? * 1 :每周一早上的零点执行
* * * 20 * ? :每月的20日触发