Create Queue
Creates a new in-memory FIFO (First-In-First-Out) queue with optional initial elements. The queue operates entirely in memory for fast, temporary data processing within an automation session.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing the node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
info
If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.
Output
- Queue ID - Unique identifier (UUID) for the created queue. Use this ID in all subsequent queue operations (Enqueue, Dequeue, Clear, Delete).
Options
- Elements - An optional array of initial elements to add to the queue at creation time. Any data type can be used (strings, numbers, objects, arrays).
How It Works
The Create Queue node initializes a new in-memory FIFO queue and returns a unique identifier. When executed, the node:
- Generates a unique UUID for the queue
- Creates a new thread-safe FIFO queue in memory
- Adds any initial elements provided (in order)
- Returns the queue ID for use in subsequent operations
Examples
Example 1: Create Empty Queue
Options:
- Elements: (not set)
Result:
- Queue ID: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
- Empty queue ready for use
Example 2: Create Queue with Initial Data
Options:
- Elements:
["task1", "task2", "task3"]
Result:
- Queue ID: "f9e8d7c6-b5a4-3210-fedc-ba0987654321"
- Queue contains three items ready to be dequeued
Example 3: Create Queue with Objects
Options:
- Elements:
[
{"id": 1, "url": "https://example.com/page1", "priority": "high"},
{"id": 2, "url": "https://example.com/page2", "priority": "normal"},
{"id": 3, "url": "https://example.com/page3", "priority": "low"}
]
Result: Queue initialized with three task objects for processing.
Example 4: Producer-Consumer Pattern
Create a queue and pass the Queue ID to both producer and consumer flows:
Flow 1 (Producer):
- Create Queue → Store Queue ID in variable
- Loop through data source
- Enqueue each item using Queue ID
Flow 2 (Consumer):
- Receive Queue ID from producer
- Loop to process items
- Dequeue using Queue ID
- Process each item
- Delete Queue when done
Use Cases
- Batch processing - Create a queue with items to process sequentially
- Task distribution - Initialize a queue that multiple parallel flows can consume from
- Data buffering - Collect items before processing them in batches
- Workflow coordination - Share data between different parts of an automation
- Job queue - Create a temporary work queue for parallel processing
Error Handling
The node will return errors in the following cases:
- ErrInvalidArg - Invalid elements array format
- ErrInternal - Failed to set output or create queue
Tips and Best Practices
- Store the Queue ID - Save the returned Queue ID in a variable for use in other nodes
- Initialize with data - If you have a known set of items, include them at creation to avoid multiple Enqueue operations
- One queue per workflow - Create separate queues for different types of tasks
- Clean up - Always delete the queue when finished to free memory
- Share across flows - Pass the Queue ID to other flows or subflows to enable concurrent processing
- Document queue purpose - Use meaningful variable names for Queue IDs (e.g.,
urlQueueId,taskQueueId)
Memory Considerations
- Queues exist only in the automation's memory
- Queues are lost if the automation stops or crashes
- For persistent queues, use the Queue package instead
- Large queues can consume significant memory - monitor usage for big datasets
- Delete unused queues to prevent memory leaks
Thread Safety
- Memory queues are thread-safe and can be accessed concurrently
- Multiple flows can enqueue and dequeue simultaneously
- FIFO ordering is guaranteed even with concurrent access
- No locking required when using queue operations
Comparison with Queue Package
Memory Queue:
- In-memory only (fast)
- No persistence
- No database required
- Simple create/delete lifecycle
- Best for temporary processing
Queue Package:
- Database-backed (persistent)
- Survives restarts
- Supports priority and retry logic
- More complex setup
- Best for production workflows