Skip to main content

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 success
  • queueStatus: Object mapping device IDs to queue counts
  • timestamp: 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 success
  • deviceId: Device identifier
  • queueCount: Number of flows in the queue
  • isProcessing: Boolean indicating if device is currently processing a flow
  • queueDetails: Array of queued flow details
    • flowId: Flow identifier
    • queuedAt: ISO timestamp when flow was queued
    • options: 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 identifier
  • flowId: 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