Memory Queue
The Memory Queue package provides a FIFO (First-In-First-Out) queue system utility for efficient and reliable task management in RPA workflows. Unlike the persistent Queue package, Memory Queue operates entirely in-memory, making it ideal for fast, temporary data processing within a single automation session.
Use Cases
Memory Queue is perfect for scenarios where you need:
- Fast data processing - In-memory operations with no database overhead
- Temporary task queuing - Managing tasks that don't need persistence across sessions
- Concurrent processing - Thread-safe queue operations for parallel workflows
- Buffer management - Collecting and processing data in batches
- Producer-consumer patterns - Decoupling data generation from data processing
Key Features
- FIFO ordering - Items are processed in the order they are added
- Thread-safe operations - Concurrent access without data corruption
- In-memory storage - Fast performance with no database dependencies
- Simple lifecycle - Create, use, and delete queues as needed
- Flexible element types - Store any type of data (strings, objects, arrays)
Workflow Pattern
A typical Memory Queue workflow follows this pattern:
- Create Queue - Initialize a new queue and get a unique queue ID
- Enqueue - Add items to the queue for processing
- Dequeue - Remove and process items one by one
- Clear (optional) - Remove all items without deleting the queue
- Delete Queue - Clean up and release memory when done
Important Notes
- Queues exist only in memory and are lost when the automation stops
- Each queue is identified by a unique UUID generated at creation
- Queues are thread-safe and can be accessed from multiple flows
- Always delete queues when finished to prevent memory leaks
- Use the Wait node for blocking operations until items are available
📄️ Clear Queue
Robomotion.MemoryQueue.Clear
📄️ Create Queue
Robomotion.MemoryQueue.Create
📄️ Delete Queue
Robomotion.MemoryQueue.Delete
📄️ Dequeue
Robomotion.MemoryQueue.Dequeue
📄️ Enqueue
Robomotion.MemoryQueue.Enqueue
📄️ Wait
Robomotion.MemoryQueue.Wait