From 1cfad27d6f9e852b38586ece5e1e6b0743d5cf14 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 10 Jun 2016 23:21:12 +0100 Subject: [PATCH] Delay node only warn once on queue >1000 messages and then again at >10000 messages --- nodes/core/core/89-delay.js | 13 +++++++++---- nodes/core/locales/en-US/messages.json | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/nodes/core/core/89-delay.js b/nodes/core/core/89-delay.js index 3f0603603..e153e18f9 100644 --- a/nodes/core/core/89-delay.js +++ b/nodes/core/core/89-delay.js @@ -101,6 +101,7 @@ module.exports = function(RED) { }); } else if (node.pauseType === "rate") { + var olddepth = 0; node.on("input", function(msg) { if (!node.drop) { if ( node.intervalID !== -1) { @@ -108,9 +109,14 @@ module.exports = function(RED) { if (node.buffer.length > 0) { node.status({text:node.buffer.length}); } - if (node.buffer.length > 1000) { + if ((node.buffer.length > 1000) && (olddepth < 1000)) { + olddepth = 1000; node.warn(node.name + " " + RED._("delay.error.buffer")); } + if ((node.buffer.length > 10000) && (olddepth < 10000)) { + olddepth = 10000; + node.warn(node.name + " " + RED._("delay.error.buffer1")); + } } else { node.send(msg); node.intervalID = setInterval(function() { @@ -119,9 +125,9 @@ module.exports = function(RED) { node.intervalID = -1; node.status({}); } - if (node.buffer.length > 0) { node.send(node.buffer.shift()); + if (node.buffer.length < 1000) { olddepth = 0; } node.status({text:node.buffer.length}); } },node.rate); @@ -190,14 +196,13 @@ module.exports = function(RED) { }, wait); node.idList.push(id); }); - + node.on("close", function() { for (var i=0; i