{"id":45574,"library":"node-red-contrib-multiple-queue","title":"node-red-contrib-multiple-queue","description":"A Node-RED node providing multiple, independently controlled message queues, each with pause/resume, flush, peek, drop, and other controls. Version 0.2.1 is stable. Designed as a more flexible alternative to single-queue nodes like node-red-contrib-queue-gate, it allows per-queue selection via msg.topic (or any property), dynamic queue creation/destruction, memory limiting, and support for 'keep newest' mode. Customizable control flags and command payloads make it adaptable to complex flow-control scenarios.","status":"active","version":"0.2.1","language":"javascript","source_language":"en","source_url":"https://github.com/drmibell/node-red-contrib-multiple-queue","tags":["javascript","node-red","queue","flow control"],"install":[{"cmd":"npm install node-red-contrib-multiple-queue","lang":"bash","label":"npm"},{"cmd":"yarn add node-red-contrib-multiple-queue","lang":"bash","label":"yarn"},{"cmd":"pnpm add node-red-contrib-multiple-queue","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"requires Node-RED runtime to function","package":"node-red","optional":false}],"imports":[{"note":"This is a Node-RED node, used via the editor palette—no JavaScript require/import.","wrong":"Trying to import as a JavaScript module","symbol":"m-queue node","correct":"Install via npm in Node-RED user directory, then use node type 'm-queue' in editor"}],"quickstart":{"code":"// In Node-RED, install the node via Manage Palette or:\n// > cd ~/.node-red && npm install node-red-contrib-multiple-queue\n// Then use the 'm-queue' node in a flow.\n// Basic setup: send a message with msg.topic to select queue, e.g.\n// msg = { topic: 'myQueue', payload: 'some data' }\n// To control: set msg.controlFlag (default true) and payload to e.g. 'trigger', 'pause', 'flush'","lang":"javascript","description":"Demonstrates installation and basic usage of m-queue node in Node-RED, including queueing and control messages."},"warnings":[{"fix":"Explicitly set the Queue Selector property to a non-empty string or configure a different property in the node settings.","message":"Queue Selector default is msg.topic; ensure msg.topic is set or messages go to the Default Queue.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use a dedicated boolean property for controlFlag (e.g., .control = true) that is not present on regular messages, or change the control flag property name in the node settings.","message":"Control Flag defaults to true; be careful not to set msg.controlFlag accidentally on normal messages, as they will be treated as commands.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Always send command payload as a string in the expected case-insensitive form.","message":"Payloads are compared case-insensitively, so 'PAUSE', 'Pause', and 'pause' all work, but unexpected numbers/booleans are converted to strings (e.g., true becomes 'true') — make sure your commands match accordingly.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Set a reasonable queue limit or enable 'Keep newest messages' to avoid discarding old messages. Monitor queue status via the 'status' control message.","message":"When a queue is full (default limited), incoming messages are discarded unless 'Keep newest messages' is enabled—this can lead to silent data loss if not configured properly.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Before sending a command, check queue status via control message or note that only certain commands work while paused. Resume the queue before sending other commands.","message":"Paused queues ignore many commands, including 'trigger', 'pause', 'resume', 'flush', etc. Only 'peek', 'status', 'delete', and 'reset' work during pause. This can lead to confusion if a queue appears unresponsive.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"search_vec":"'0.2.1':28 'adapt':79 'allow':50 'altern':36 'command':75 'complex':81 'contrib':4,46 'control':15,26,72,84,92 'creation/destruction':62 'customiz':71 'design':31 'drop':23 'dynam':60 'flag':73 'flexibl':35 'flow':83,91 'flow-control':82 'flush':21 'gate':48 'independ':14 'javascript':86 'keep':68 'like':42 'limit':64 'make':77 'memori':63 'messag':16 'mode':70 'msg.topic':56 'multipl':5,13 'newest':69 'node':2,9,11,41,44,88 'node-r':8,87 'node-red-contrib-multiple-queu':1 'node-red-contrib-queue-g':43 'pause/resume':20 'payload':76 'peek':22 'per':52 'per-queu':51 'properti':59 'provid':12 'queue':6,17,40,47,53,61,90 'red':3,10,45,89 'scenario':85 'select':54 'singl':39 'single-queu':38 'stabl':30 'support':66 'version':27 'via':55","created_at":"2026-06-07T12:55:41.167757+00:00","updated_at":"2026-06-07T12:55:41.167757+00:00","problems":[{"fix":"Ensure every message has the Queue Selector property set, or change the node configuration to use a different property that is always defined.","cause":"Queue Selector property (default msg.topic) is missing or undefined on incoming message.","error":"TypeError: Cannot read properties of undefined (reading 'topic')"},{"fix":"Send a valid command string as payload (e.g., 'trigger', 'pause', 'flush') and ensure it matches one of the defined commands. Check spelling and case.","cause":"Control flag is set but payload is undefined or empty string, or the command string does not match any defined command (case-insensitive).","error":"The payload was not matched to any command: undefined"},{"fix":"Ensure the queue name in the Queue Selector property matches the name of an active queue. Queues are created automatically when first message arrives, but can be deleted via 'delete' command.","cause":"A message addressed to a queue that does not exist and the queue creation is disabled or the queue was deleted.","error":"Queue 'myQueue' not found — dropping message"},{"fix":"Increase the queue limit, enable 'Keep newest messages' to keep newest instead of oldest, or add control to flush/trigger the queue before it fills up.","cause":"Queue has reached its maximum size limit (default configurable) and 'Keep newest messages' is disabled, so oldest messages are kept and new ones discarded.","error":"Warning: Queue limit reached, discarding message"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/drmibell/node-red-contrib-multiple-queue","github":"https://github.com/drmibell/node-red-contrib-multiple-queue","docs":null,"changelog":null,"pypi":null,"npm":"node-red-contrib-multiple-queue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["messaging"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}