我有一个奇怪的问题,即长时间的setTimeouts不会在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);
此代码将在Ubuntu / x64上8小时后回显Alarm!
,但它永远不会在RPI上触发。
使用:
不能工作:
根据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错误还是我在做一些时髦的事情?
答案 0 :(得分:0)
添加此功能解决了这个问题,直到修复了NodeJS问题。
// Every 20 min to keep awake
setInterval(() => 1, 1000 * 60 * 20);