Skip to main content
Workers Queues allow you to send and receive messages with guaranteed delivery. Use these commands to manage your queues, consumers, and event subscriptions.

create

Create a new queue.
wrangler queues create <name> [options]
name
string
required
The name of the queue to create

Options

--delivery-delay-secs
number
How long a published message should be delayed for, in seconds. Must be between 0 and 43200 (12 hours)
--message-retention-period-secs
number
How long to retain a message in the queue, in seconds. Must be between 60 and 86400 if on free tier, otherwise must be between 60 and 1209600 (14 days)

Example

wrangler queues create my-queue
After creation, configure your Worker to use the queue:
wrangler.json
{
  "queues": {
    "producers": [
      {
        "queue": "my-queue",
        "binding": "MY_QUEUE"
      }
    ]
  }
}

delete

Delete a queue.
wrangler queues delete <name>
name
string
required
The name of the queue to delete

Example

wrangler queues delete my-queue

list

List all queues in your account.
wrangler queues list [options]

Options

--page
number
Page number for pagination

Example

wrangler queues list

info

Get detailed information about a queue.
wrangler queues info <name>
name
string
required
The name of the queue

Example

wrangler queues info my-queue
Displays queue information including:
  • Queue ID and name
  • Creation and modification timestamps
  • Number of producers and consumers
  • Consumer details (Worker consumers or HTTP Pull consumers)

update

Update queue settings.
wrangler queues update <name> [options]
name
string
required
The name of the queue to update

Options

--delivery-delay-secs
number
How long a published message should be delayed for, in seconds. Must be between 0 and 43200
--message-retention-period-secs
number
How long to retain a message in the queue, in seconds. Must be between 60 and 86400 if on free tier, otherwise must be between 60 and 1209600

Example

wrangler queues update my-queue --delivery-delay-secs 10

pause

Pause message delivery for a queue.
wrangler queues pause <name>
name
string
required
The name of the queue to pause

Example

wrangler queues pause my-queue

resume

Resume message delivery for a paused queue.
wrangler queues resume <name>
name
string
required
The name of the queue to resume

Example

wrangler queues resume my-queue

purge

Purge all messages from a queue.
wrangler queues purge <name> [options]
name
string
required
The name of the queue to purge

Options

--force
boolean
Skip the confirmation dialog and forcefully purge the queue

Example

wrangler queues purge my-queue
This operation permanently deletes all messages in the queue and cannot be undone.

consumer worker

Manage Worker consumers for a queue.
Add a Worker consumer to a queue.
wrangler queues consumer worker add <queue-name> <script-name> [options]
queue-name
string
required
Name of the queue to configure
script-name
string
required
Name of the consumer Worker script

Options

--batch-size
number
Maximum number of messages per batch
--batch-timeout
number
Maximum number of seconds to wait to fill a batch with messages
--message-retries
number
Maximum number of retries for each message
--dead-letter-queue
string
Queue to send messages that failed to be consumed
--max-concurrency
number
The maximum number of concurrent consumer Worker invocations. Must be a positive integer
--retry-delay-secs
number
The number of seconds to wait before retrying a message

Example

wrangler queues consumer worker add my-queue my-consumer --batch-size 10 --max-concurrency 5
Remove a Worker consumer from a queue.
wrangler queues consumer worker remove <queue-name> <script-name>
queue-name
string
required
Name of the queue to configure
script-name
string
required
Name of the consumer Worker script to remove

Example

wrangler queues consumer worker remove my-queue my-consumer

consumer http-pull

Manage HTTP Pull consumers for a queue.
Add an HTTP Pull consumer to a queue.
wrangler queues consumer http-pull add <queue-name> [options]
queue-name
string
required
Name of the queue for the consumer

Options

--batch-size
number
Maximum number of messages per batch
--message-retries
number
Maximum number of retries for each message
--dead-letter-queue
string
Queue to send messages that failed to be consumed
--visibility-timeout-secs
number
The number of seconds a message will wait for an acknowledgement before being returned to the queue
--retry-delay-secs
number
The number of seconds to wait before retrying a message

Example

wrangler queues consumer http-pull add my-queue --batch-size 10
Remove an HTTP Pull consumer from a queue.
wrangler queues consumer http-pull remove <queue-name>
queue-name
string
required
Name of the queue for the consumer

Example

wrangler queues consumer http-pull remove my-queue

subscription

Manage event subscriptions for a queue.
Create a new event subscription for a queue.
wrangler queues subscription create <queue> [options]
queue
string
required
The name of the queue to create the subscription for

Options

--source
string
required
The event source type. Valid values:
  • kv.namespace
  • r2.bucket
  • superSlurper.job
  • vectorize.index
  • workersAi.model
  • workersBuilds.worker
  • workflows.workflow
--events
string
required
Comma-separated list of event types to subscribe to
--name
string
Name for the subscription (auto-generated if not provided)
--enabled
boolean
default:"true"
Whether the subscription should be active
--model-name
string
Workers AI model name (required for workersAi.model source)
--worker-name
string
Worker name (required for workersBuilds.worker source)
--workflow-name
string
Workflow name (required for workflows.workflow source)

Example

wrangler queues subscription create my-queue --source r2.bucket --events object.create,object.delete
Delete an event subscription from a queue.
wrangler queues subscription delete <queue> [options]
queue
string
required
The name of the queue

Options

--id
string
required
The ID of the subscription to delete
--force
boolean
default:"false"
Skip confirmation

Example

wrangler queues subscription delete my-queue --id abc123
List event subscriptions for a queue.
wrangler queues subscription list <queue> [options]
queue
string
required
The name of the queue to list subscriptions for

Options

--page
number
default:"1"
Page number for pagination
--per-page
number
default:"20"
Number of subscriptions per page
--json
boolean
default:"false"
Output in JSON format

Example

wrangler queues subscription list my-queue
Get details about a specific event subscription.
wrangler queues subscription get <queue> [options]
queue
string
required
The name of the queue

Options

--id
string
required
The ID of the subscription to retrieve
--json
boolean
default:"false"
Output in JSON format

Example

wrangler queues subscription get my-queue --id abc123
Update an existing event subscription.
wrangler queues subscription update <queue> [options]
queue
string
required
The name of the queue

Options

--id
string
required
The ID of the subscription to update
--name
string
New name for the subscription
--events
string
Comma-separated list of event types to subscribe to
--enabled
boolean
Whether the subscription should be active
--json
boolean
default:"false"
Output in JSON format

Example

wrangler queues subscription update my-queue --id abc123 --enabled false

Configuration

Configure queues in your Worker configuration file:

Producer Configuration

wrangler.json
{
  "queues": {
    "producers": [
      {
        "queue": "my-queue",
        "binding": "MY_QUEUE"
      }
    ]
  }
}

Consumer Configuration

wrangler.json
{
  "queues": {
    "consumers": [
      {
        "queue": "my-queue",
        "max_batch_size": 10,
        "max_batch_timeout": 30,
        "max_retries": 3,
        "dead_letter_queue": "my-dlq"
      }
    ]
  }
}

Build docs developers (and LLMs) love