Подтвердить что ты не робот

Node.js setTimeout не запускается после изменения системного времени

У меня есть script

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

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

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

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

Мы используем Node.js v0.10.15 для настройки отношения OpenWRT

Спасибо

4b9b3361

Ответ 1

Я только что основал, что это ошибка исправленная в более новой версии. Он исправлен этим commit в версии 10.3.33.

Если вы столкнулись с этой проблемой, вам необходимо обновить или исправить свой node.js

Ответ 2

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

npm install node -schedule

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