Ho un problema strano in cui i setTimeout lunghi non si attivano su Raspberry PI, ma lo fanno su Ubuntu/x64 e OSX.Long setTimeout in NodeJS su Raspberry PI
'use strict';
const delay = 1000 * 3600 * 8;
const date = new Date();
date.setTime(new Date().getTime() + delay);
console.log('Alarm set to', date.toString());
setTimeout(function() {
console.log('Alarm!', new Date());
}, delay);
Questo codice eco Alarm!
dopo 8 ore su Ubuntu/x64, ma non è mai lanciato su RPI.
Works:
- Ubuntu/x64
- OSX
Non funziona:
- RPI B + con Raspian 7 (Nodo 6.1)
- RPI 3 con Raspian 8 (Nodo 4.4.4, 6.0 e 6.1)
Secondo ps
lo script è in Sl
Stato: Interruptible sleep (waiting for an event to complete), is multi-threaded (using CLONE_THREAD, like NPTL pthreads do).
In una versione più complessa di questo codice, dove posso controllare lo script attraverso un'interfaccia utente Web, il "allarme" si spegne dopo il set tempo, ma solo quando accedo all'interfaccia utente Web (per riattivare l'applicazione?).
Si tratta di un bug NodeJS o sto facendo qualcosa di funky?
trovato questo, sembra essere un problema noto: https://github.com/nodejs/node/issues/4262 – Znarkus
ho sperimentato lo stesso. Questo problema è ancora in sospeso – jamesfmackenzie