2016-04-15 2 views
17

У меня есть такой сценарийNode.js SetTimeout не уволен после изменения системного времени

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

Когда я запускаю его и системное время изменения обратно в течение одного часа, время ожидания не срабатывает. Если я изменяю время вперед на один час, тайм-аут работает правильно.

Время изменяется внешней программой, которая делает вызов, как ioctl(rtcFd, RTC_SET_TIME, &newTime);

Как исправить эту проблему?

Мы используем Node.js v0.10.15 на Adjustment Attitude OpenWRT

Спасибо

ответ

7

я только основал, что это bug fixed in newer version. Он исправлен этим commit в версии 10.3.33.

Если вы встречаете эту проблему, вам нужно обновить или исправить ваш node.js

+0

К честно говоря, я рекомендую переключиться на Node v4 - это версия LTS с превосходной производительностью и безопасностью. – Ginden

+0

Узел v5.11 был только что выпущен вчера. https://nodejs.org/ru/blog/release/v5.11.0/ – Laurent

+0

В нашем конкретном случае было сложно обновить до последней версии v5.11. Мы решили проблему, обновив v0.10.44 –

0

Использования узла планировщика это для повременного планирования

НПХ установить узел-график

var jobId="123456abc"; 
schedule.scheduleJob(jobId, new Date(1), function() 
{                            
    schedule.cancelJob(jobId); 
    // your code here. 
}); 
Смежные вопросы