首页 > 解决方案 > 双间隔调用,它不应该在 node.js 中

问题描述

我在服务器端(node.js)有问题setInterval。我想每天在特定时间检查一些东西,我设置了这样的间隔:

let maintainTime = backFunc.getNextMaintainTime(new Date());
let maintain = setInterval(() => {
    let currentTime = new Date();
    if (currentTime.getTime() > maintainTime.getTime()) {
        maintainTime = backFunc.getNextMaintainTime(maintainTime);
        //do the maintain
    }
}, 360000);
//360000 to check on every hour

这是我的getNextMaintainTime功能:

getNextMaintainTime: (maintainTime) => {
    maintainTime.setDate(maintainTime.getDate() + 1);
    maintainTime.setHours(4);
    maintainTime.setMinutes(0);
    maintainTime.setSeconds(0);
    maintainTime.setMilliseconds(0);

    return maintainTime;
}

当我对其进行测试时,它运行良好,但是当我在生产中启动服务器时,每次它在凌晨 4 点调用此函数 2 次而不是 1 次时,可能导致问题的原因是什么?

标签: javascriptnode.jssetinterval

解决方案


推荐阅读