Queue Management
Endpoints for managing flow execution queues across devices.
Queue Status
GET /api/queues
Gets queue status for all devices.
Response:
{
"success": true,
"queueStatus": {
"device-123": 3,
"device-456": 1,
"device-789": 0
},
"timestamp": "2024-01-01T12:00:00.000Z"
}
Response Fields:
success: Boolean indicating request successqueueStatus: Object mapping device IDs to queue countstimestamp: ISO timestamp of the response
Error Response:
{
"success": false,
"error": "Error message",
"code": "QUEUE_STATUS_ERROR",
"message": "Failed to get queue status"
}
GET /api/queues/:deviceId
Gets detailed queue status for a specific device.
Parameters:
deviceId: Device identifier
Response:
{
"success": true,
"deviceId": "device-123",
"queueCount": 3,
"isProcessing": true,
"queueDetails": [
{
"flowId": "flow-456",
"queuedAt": "2024-01-01T12:00:00.000Z",
"options": {
"priority": "high"
}
},
{
"flowId": "flow-789",
"queuedAt": "2024-01-01T12:01:00.000Z"
}
],
"timestamp": "2024-01-01T12:02:00.000Z"
}
Response Fields:
success: Boolean indicating request successdeviceId: Device identifierqueueCount: Number of flows in the queueisProcessing: Boolean indicating if device is currently processing a flowqueueDetails: Array of queued flow detailsflowId: Flow identifierqueuedAt: ISO timestamp when flow was queuedoptions: Optional flow execution options
timestamp: ISO timestamp of the response
Error Response:
{
"success": false,
"error": "Error message",
"code": "DEVICE_QUEUE_STATUS_ERROR",
"message": "Failed to get device queue status"
}
Queue Operations
DELETE /api/queues/:deviceId/:flowId
Removes a flow from a device's queue.
Parameters:
deviceId: Device identifierflowId: Flow identifier to remove
Response:
{
"success": true,
"flowId": "flow-456",
"deviceId": "device-123",
"message": "Flow removed from queue successfully",
"timestamp": "2024-01-01T12:00:00.000Z"
}
Error Responses:
Flow not found in queue (404):
{
"success": false,
"flowId": "flow-456",
"deviceId": "device-123",
"error": "Flow not found in queue",
"code": "FLOW_NOT_IN_QUEUE",
"message": "Flow not found in device queue"
}
Server error (500):
{
"success": false,
"error": "Error message",
"code": "REMOVE_FROM_QUEUE_ERROR",
"message": "Failed to remove flow from queue"
}
Usage Examples
Get All Queue Statuses
curl -X GET http://localhost:3000/api/queues
Get Device Queue Details
curl -X GET http://localhost:3000/api/queues/device-123
Remove Flow from Queue
curl -X DELETE http://localhost:3000/api/queues/device-123/flow-456
Integration Notes
- Queue status is automatically maintained by the execution queue service
- Queues are device-specific - each device has its own execution queue
- Flows are processed in FIFO (First In, First Out) order
- Removing a flow from the queue prevents it from executing
- Queue status updates in real-time as flows are added or removed