Feature request: message delivery pending

On my Raspberry Pi Zero a Node-red function can comfortably read a counter from context, increment & save it and pass the result on more than 1000 times a second.

So a flash of the wire as it passed would be imperceptible.

I can envisage the wires's glow decaying over perhaps .025 sec which maybe could be done via CSS and some extra code in wherever a message is propagated from one node to the next.

It would have to depend on a special setting though - myEditorISADashboard = true maybe :wink:

The same setting could cause the currently active node to glow too?

It's not April 1st again is it ? :sunglasses:

And yeah - asking the browser to update something 1000 times a second is really not good for performance - replicated across many wires/nodes etc... That is why the status indicator is meant to show things like the state of a server connection or the odd error condition and not be a dashboard.

1 Like

I do recall a thread some time ago about "auto clear" of the status indicator. One of the things that initially tripped me up was seeing the last status - that may have been from days ago. Perhaps something as simple as decaying status would go someway to providing clearer status?

Well if that status (from several days ago) is still the status then wouldn't you want to know ? (if a node isn't clearing it correctly then yeah - it needs to be fixed)

(And yes there is a wider topic of better inline debug) - maybe via an inline node - or variation to the debug node - or hover over something.... or... )

2 Likes

Ordinarily yes, but if some cases no. I cannot for the life of me remember the good reason I had in my head though. :smiley:

A thousand updates a second is a lot for sure.

What are the performance / memory consequences of updating a debug node status 1000 times a second? (ie under the node, not output to the debug pane)
It does seem to be able to keep up with an inject every millisecond, though of course there may be an increasing lag or memory use.

I know a CSS transition over a quarter of a second must surely lag.

Nope, not a serious suggestion, just wondering how much of a problem it would be.

The debug node has special code in it to buffer up messages - If there are more than the scrollable display window depth they get dropped - so only the last visible ones end up getting sent - but even so it can lag quite a bit if pushed.

Some other nodes (like delay node I think) also rate limit status updates to something like 2-3 per sec).

Is there an API which makes available the ID of the node currently being processed?

There could perhaps be some sort of dashboard node which replicates the layout of a chosen editor tab, highlighting the 'current' node.

No idea if this is practical and I have no idea how to go about coding it, but I'm thinking of https://traintimes.org.uk/map/tube or https://www.flightradar24.com

Not really - you could turn on metrics logging in settings.js, and tail that log - but you would then have to process the info and create the ui...

It would hang off the preRoute hook - Messaging Hooks : Node-RED

But as I said in my reply, if anyone wants to pursue this, please talk to me directly first.

There is no need to have lines, borders and messages be on always (as in a plc editor) one just turns on watch (or simulation) mode. Node could most likely handle this with ease, since it only requires to update the currently visal nodes with lines.

if it already can handle the 1000's or 100000's of messages without delay on even a raspberry pi why would this even be a problem since it clearly does not require to update the entire project?

Anyway i don't see why this would not be a good thing.

As i'm not into developing node-red itself maybe someone could look at if this is possible to add to the debugger (plugin) for testing?

Hi @knolleary,

thanks for your interest.
I've searched alot, but could not find any information about such feature request (the current topic looks most like it).

Sorry i don't see why a computer (node) could not handle such simple visual representation with ease. Ofcourse there may be some performance impact, but again it's not meant for production (dashboard) only in the editor to visualise the flow of messages to the developer.

I don't know the underlaying api's but i see each node can sent a status already, so lighting up the line looks to me do-able.

I think it should be added to the node-red-debugger and maybe under a "watch" mode that can be enabled.

Again, thanks for your time in this.

Knowing this community a bit, we all would appreciate if you created a PoC that underlines your assumptions. That could be a great starting point then to include this feature into node-red-debugger.

This topic was automatically closed after 2 days. New replies are no longer allowed.