diff --git a/nodes/core/core/89-delay.html b/nodes/core/core/89-delay.html index d64207517..8b468d0ea 100644 --- a/nodes/core/core/89-delay.html +++ b/nodes/core/core/89-delay.html @@ -59,19 +59,19 @@
When configured to delay messages, the delay interval can be a fixed value a random value within a range or dynamically set for each message.
When configured to rate limit messages, their delivery is spread across - the configured time period. It can optionally discard intermediate messages as they arrive.
+ the configured time period. The status shows the number of messages currently in the queue. + It can optionally discard intermediate messages as they arrive.The rate limiting can be applied to all messages, or group them according to
their msg.topic
value. When grouping, intermerdiate messages are
diff --git a/nodes/core/core/89-delay.js b/nodes/core/core/89-delay.js
index 96928fc97..4abb39808 100644
--- a/nodes/core/core/89-delay.js
+++ b/nodes/core/core/89-delay.js
@@ -122,19 +122,15 @@ module.exports = function(RED) {
}
else if (node.pauseType === "rate") {
var olddepth = 0;
+ node.busy = setInterval(function() {
+ if (node.buffer.length > 0) {
+ node.status({text:node.buffer.length});
+ }
+ },333);
node.on("input", function(msg) {
if (!node.drop) {
if ( node.intervalID !== -1) {
node.buffer.push(msg);
- if ((node.rate >= 200) && (node.buffer.length > 0)) {
- node.status({text:node.buffer.length});
- }
- else {
- if (!olddepth) {
- node.status({fill:"blue",shape:"dot"});
- olddepth = 1;
- }
- }
}
else {
node.send(msg);
@@ -173,6 +169,7 @@ module.exports = function(RED) {
});
node.on("close", function() {
clearInterval(node.intervalID);
+ clearInterval(node.busy);
node.buffer = [];
node.status({});
});