Node-schedule定时任务配置异常:每6小时执行设置失效
解决node-schedule每6小时任务持续运行一小时的问题
嘿,我一眼就看出问题出在你的cron表达式上了!
问题根源
你当前用的 * */6 * * * 表达式里,第一个星号 * 代表每分钟触发一次任务。结合后面的 */6(每6小时),就会导致在0、6、12、18点这几个小时内,每分钟都执行一次任务——这就是为什么你看起来任务持续运行了一小时,而不是只执行一次。
正确的解决方案
把cron表达式的分钟位固定为0,也就是改成 0 */6 * * *。这个表达式的含义是:每6小时的第0分钟(也就是整点)执行一次任务,刚好对应你想要的0、6、12、18点各执行一次的效果。
修改后的代码
let schedule = require('node-schedule'); let j = schedule.scheduleJob('0 */6 * * *', function() { // 这里放入你的任务逻辑 do smt; });
为什么这个方案适合你
- 不需要用布尔变量做临时修复,完全通过正确的cron表达式实现精准调度
- node-schedule本身支持跨平台运行,不需要依赖Linux CronJob
- 表达式逻辑清晰,后续维护也更容易
内容的提问来源于stack exchange,提问作者Achiel Volckaert




