Variable rate limit

Hi all,
Particular problem;
I'm running a flow that generates over 200 messages very quickly. The target that receives these messages can easily be overwhelmed due to a number of reasons.

To solve this I'm currently using the delay node, in rate limit mode, set to 3 seconds however, the target node can sometimes accept quicker, but it all depends on the target node system's existing load and any network delays.

The target node does output when it's completed which I can capture using the complete node, but how can I have the delay node output when pulsed, rather than it's internal timer...?

I can't interfere in the flow of the messages other than to delay them, or change them in any way, so any trigger would have to be outside of the main message flow pipeline..

Some kind of delay node that stores up the incoming messages, but only releases them one by one, and only when an independant input triggers it.

Any ideas welcome. Thanks...

You can use the successful feedback to create a msg containing. {flush:1} and feed that back into the delay node to release the next message immediately. Make sure it just has the flush property. No payload etc.

What would that look like in a switch node?

msg.flush = 1 ?

Yes. But you’d need to remove any other properties. I’d use a function node that just returned that to be simpler.

1 Like

That worked a treat. Thanks Dave :folded_hands:

1 Like