2016-04-15 154 views
17

后的setTimeout没有解雇我有这样的剧本Node.js的系统时间更改

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

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

时间由外部程序,这使得像ioctl(rtcFd, RTC_SET_TIME, &newTime);

如何解决这个问题的呼叫改变了吗?

我们使用Node.js的v0.10.15上的OpenWRT调整心态

谢谢

回答

7

我刚刚成立,这是一个bug fixed in newer version。它在v0.10.33中由此commit修复。

如果你满足这个问题,你需要更新或修补的node.js

+0

要说实话,我建议切换到Node v4 - 它是LTS版本,具有卓越的性能和安全性。 – Ginden

+0

Node v5.11昨天刚刚发布。 https://nodejs.org/en/blog/release/v5.11.0/ – Laurent

+0

在我们的特殊情况下,很难更新到最新版本v5.11。我们通过更新到v0.10.44解决了问题 –

0

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

NPM安装节点调度

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