Queue
For requests that take longer than a few seconds, typical in AI applications, we’ve developed a queue system. This system offers you fine-grained control to manage traffic surges, cancel requests if needed, and monitor your request’s status in the queue. It also eliminates the need for handling long-running HTTP requests.
Queue Endpoints
You can access all queue features through endpoints added to your function URL using the queue
subdomain. The available endpoints are:
Endpoint | Method | Description |
---|---|---|
api.sunra.ai/queue/{appId} | POST | Adds a request to the queue |
api.sunra.ai/queue/requests/{request_id}/status | GET | Retrieves the status of a request |
api.sunra.ai/queue/requests/{request_id}/status/stream | GET | Streams the status until completion |
api.sunra.ai/queue/requests/{request_id} | GET | Fetches the response of a request |
api.sunra.ai/queue/requests/{request_id}/cancel | PUT | Cancels a request |
For example, to submit a request using curl and add it to the queue:
Here’s a sample response including the request_id
:
The payload includes the request_id
and provides URLs for checking status, canceling, or retrieving the response, streamlining your workflow without additional endpoint development.
Request Status
To monitor the progress of your request, use the provided endpoint with your unique request ID. This allows you to track the status, queue position, or retrieve the response once it’s ready.
Endpoint Usage
Example Response
When your request is in the queue, you’ll receive a response like this:
Possible Statuses
Your request can be in one of three states:
-
IN_QUEUE: Indicates the request is waiting to be processed.
queue_position
: Shows your place in the queue.response_url
: URL for retrieving the response once processing completes.
-
IN_PROGRESS: The request is currently being processed.
logs
: Detailed logs (if enabled) showing processing steps.response_url
: Where the final response will be available.
-
COMPLETED: Processing has finished.
logs
: Logs detailing the entire process.response_url
: Direct link to your completed response.
Enabling Logs
Logs provide insights into request processing. They are disabled by default but can be enabled with a query parameter:
Each log entry includes:
message
: Description of the event.level
: Severity (e.g., INFO, ERROR).source
: Origin of the log.timestamp
: Time the log was generated.
Real-Time Monitoring
For continuous updates, use the streaming endpoint:
This provides real-time status updates in text/event-stream
format until the request is completed.
Cancelling Requests
If your request is still queued, you can cancel it with:
Retrieving Responses
Once your request is COMPLETED
, retrieve the response using:
This endpoint also provides logs for review.
Simplified Integration with Sunra Client
The Sunra client automates status tracking, simplifying app development with Sunra functions.