Skip to content

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 changedWhen it applies
Webhook URL, delivery mode, ack timeout, dead-letterYour next job delivery — typically within a second.
Concurrency, rate limitOnce 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), backoffJobs 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.