6
ラズベリーPIでは長いsetTimeoutsがトリガーされないが、Ubuntu/x64とOSXでは長くかかる問題があります。ラズベリーPIのNodeJSで長いsetTimeout
'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);
このコードは、Ubuntuの/ x64の上Alarm!
8時間後にエコーしますが、それはRPIにトリガーされません。
作品:
- のUbuntu/x64の
- OSX
動作しません:
- RPI Bは+をRaspian 7(ノード6.1)
- RPI 3でRaspian 8(ノード4.4.4,6.0,6.1)
ps
によると、スクリプトがSl
状態になっている:私は、Web UIを通じてスクリプトを制御することができ、このコードのより複雑なバージョンでInterruptible sleep (waiting for an event to complete), is multi-threaded (using CLONE_THREAD, like NPTL pthreads do).
、「アラーム」とは、集合後に消灯します(Webアプリケーションに目を覚ますために)Web UIにアクセスするときだけです。
これはNodeJSバグですか、何かファンキーなことをしていますか?
これは既知の問題です。https://github.com/nodejs/node/issues/4262 – Znarkus
私は同じことを経験しました。この問題はまだ顕著です – jamesfmackenzie