Node.js setTimeout在系统时间更改后未触发

Node.js setTimeout not fired after system time change

本文关键字:时间 js setTimeout 系统 Node      更新时间:2023-09-26

我有这样的脚本

setTimeout(function() 
{
    console.log("Timeout");
}, 1000 * 60);

当我运行它并将系统时间更改回一个小时时,超时不会触发。如果我将时间向前更改一个小时,则超时工作正常。

时间由外部程序更改,该程序发出类似ioctl( rtcFd, RTC_SET_TIME, &newTime); 的调用

如何解决此问题?

我们在OpenWRT姿态调整上使用Node.js v0.10.15

感谢

我刚刚发现这是一个在新版本中修复的错误。它在v0.10.33中通过此提交进行了修复。

如果遇到此问题,则需要更新或修补node.js

使用节点调度器这是用于基于时间的调度

npm安装节点计划

var jobId="123456abc";
schedule.scheduleJob(jobId, new Date(1), function() 
{                                                                                                              
    schedule.cancelJob(jobId);
    // your code here.
});