Raspberry PI上的NodeJS中的long setTimeout

Zna*_*kus 6 node.js raspberry-pi

我有一个奇怪的问题,即长时间的setTimeout不会在Raspberry PI上触发,但它们在Ubuntu/x64和OSX上运行.

'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);
Run Code Online (Sandbox Code Playgroud)

此代码将Alarm!在Ubuntu/x64上8小时后回显,但它永远不会在RPI上触发.

作品:

  • Ubuntu的/ 64
  • OSX

不起作用:

  • RPI b +与Raspian 7(节点6.1)
  • 带有Raspian 8的RPI 3(节点4.4.4,6.0和6.1)

根据ps脚本Sl状态:Interruptible sleep (waiting for an event to complete), is multi-threaded (using CLONE_THREAD, like NPTL pthreads do).

在这个代码的更复杂版本中,我可以通过Web UI控制脚本,"警报"将在设置的时间后关闭,但仅在我访问Web UI时(唤醒应用程序?).

这是一个NodeJS错误还是我在做一些时髦的事情?

Zna*_*kus 0

添加这个可以解决它,直到 NodeJS 问题得到解决。

// Every 20 min to keep awake
setInterval(() => 1, 1000 * 60 * 20);
Run Code Online (Sandbox Code Playgroud)