Editing a queue
You can change any queue setting except its name, at any time — retune concurrency, add a rate limit, switch delivery mode, or point at a new webhook URL.
Change a setting
Update the queue via the API (PUT /v1/queues/<queue-id> — partial, send only the fields you're changing):
bash
curl -X PUT "$SQ_API_URL/v1/queues/<queue-id>" \
-H "Authorization: Bearer $SIMPLEQ_API_KEY" \
-H "content-type: application/json" \
-d '{ "concurrency": 50 }'js
await fetch(`${process.env.SQ_API_URL}/v1/queues/<queue-id>`, {
method: 'PUT',
headers: { 'content-type': 'application/json', authorization: `Bearer ${process.env.SIMPLEQ_API_KEY}` },
body: JSON.stringify({ concurrency: 50 }),
});python
import os, httpx
httpx.put(
f"{os.environ['SQ_API_URL']}/v1/queues/<queue-id>",
headers={"authorization": f"Bearer {os.environ['SIMPLEQ_API_KEY']}"},
json={"concurrency": 50},
)Or use the dashboard: open the queue and click Edit queue. The <queue-id> is the queue's _id from the POST /v1/queues response.
When changes take effect
| What you changed | When it applies |
|---|---|
| Webhook URL, delivery mode, ack timeout, dead-letter | Your next job delivery — typically within a second. |
| Concurrency, rate limit | Once the jobs currently being processed finish: instant when the queue is idle, up to about 15 seconds on a standard-mode queue, or up to your queue's ack timeout on an ack-mode queue. |
Retry count (maxAttempts), backoff | Jobs you publish after the change. Jobs already in the queue keep the retry settings they were created with. |
Nothing is lost or interrupted: jobs already running always finish under the settings they started with, and your new values apply from there.
Related
- Job delivery — delivery mode and the standard-mode timeout.
- Ack mode — what
ackTimeoutcontrols. - Backpressure — how rate limits and
deferinteract. - API reference — every field on the update endpoint.