Fix delay node not dropping when nodeMessageBufferMaxLength is set

to close #4966
This commit is contained in:
Dave Conway-Jones 2024-11-30 18:02:20 +00:00
parent e48607c743
commit 7a5d56a920
No known key found for this signature in database
GPG Key ID: 1DDB0E91A28C2643

View File

@ -291,11 +291,12 @@ module.exports = function(RED) {
}
}
else if (!msg.hasOwnProperty("reset")) {
if (maxKeptMsgsCount(node) > 0) {
if (maxKeptMsgsCount(node) > 0 && !node.drop) {
if (node.intervalID === -1) {
node.send(msg);
node.intervalID = setInterval(sendMsgFromBuffer, node.rate);
} else {
}
else {
if (node.allowrate && msg.hasOwnProperty("rate") && !isNaN(parseFloat(msg.rate)) && node.rate !== msg.rate) {
node.rate = msg.rate;
clearInterval(node.intervalID);
@ -304,7 +305,8 @@ module.exports = function(RED) {
if (node.buffer.length < _maxKeptMsgsCount) {
var m = RED.util.cloneMessage(msg);
node.buffer.push({msg: m, send: send, done: done});
} else {
}
else {
node.trace("dropped due to buffer overflow. msg._msgid = " + msg._msgid);
node.droppedMsgs++;
}
@ -325,7 +327,8 @@ module.exports = function(RED) {
else if ( ( (timeSinceLast[0] * SECONDS_TO_NANOS) + timeSinceLast[1] ) > (node.rate * MILLIS_TO_NANOS) ) {
node.lastSent = process.hrtime();
send(msg);
} else if (node.outputs === 2) {
}
else if (node.outputs === 2) {
send([null,msg])
}
}