我正在努力解决节点红色的节点配置问题。 我做了一个节点,它有一个输入和一个输出。每次输入获取任何类型的有效负载消息时,它都会执行文件读取,然后将内容扔出输出。 问题是,当我以0.01秒的间隔发送输入信号时,节点红色流编辑器(Web界面)挂起!我发现这是
node.send(msg)
导致问题的原因,因为如果只是将消息放在
console.log(msg)
一切正常。
当node-red挂起时,我唯一能使它再次“活动”的就是删除流json文件。
我收到此错误:
28 Jun 08:22:43 - [red] Uncaught Exception:
28 Jun 08:22:43 - Error: EMFILE: too many open files, open
快速打开,读取和关闭文件的节点红色是否存在限制?
这是我的.js源代码:
node.on('input', function(msg){
fs.readFile(path.location,(err, data) => {
if (err) throw err;
if(name === 'Mains current') {
data = {payload: data/1000*(-1), topic: msg.topic};
}
else {
data = {payload: data/1000, topic: msg.topic};
}
node.send(data);
})
})
答案 0 :(得分:0)
我解决了! 我做了一个忙碌的旗帜;
var busy = false;
node.on('input', function(msg){
if (busy){
console.log('busy');
return;
}
busy = true;
fs.readFile(path.location,(err, data) => {
if (err) throw err;
if(name === 'Mains current') {
data = {payload: data/1000*(-1), topic: msg.topic};
}
else {
data = {payload: data/1000, topic: msg.topic};
}
node.send(data);
busy = false;
})
})