Configure Queues
Cloudflare Queues can be configured using Wrangler, the command-line interface for Cloudflare’s Developer Platform, which includes Workers, R2, and other developer products.
Each Worker has a wrangler.toml
configuration file that specifies environment variables, triggers, and resources, such as a Queue. To enable Worker-to-resource communication, you must set up a binding in your Worker project’s wrangler.toml
file.
Use the options below to configure your queue.
Producer
A producer is a Cloudflare Worker that writes to one or more queues. A producer can accept messages over HTTP, asynchronously write messages when handling requests, and/or write to a queue from within a Durable Object. Any Worker can write to a queue.
To produce to a queue, set up a binding in your wrangler.toml
file. These options should be used when a Worker wants to send messages to a queue.
[[queues.producers]] queue = "my-queue" binding = "MY_QUEUE"
queue
string
- The name of the Queue.
binding
string
- The name of the binding, which is a JavaScript variable.
Consumer
Workers
To consume messages from one or more queues, set up a binding in your wrangler.toml
file. These options should be used when a Worker wants to receive messages from a queue.
[[queues.consumers]] queue = "my-queue" max_batch_size = 10 max_batch_timeout = 30 max_retries = 10 dead_letter_queue = "my-queue-dlq"
Refer to Limits to review the maximum values for each of these options.
queue
string
- The name of the Queue.
max_batch_size
number
- The maximum number of messages allowed in each batch.
- Defaults to
10
messages.
max_batch_timeout
number
- The maximum number of seconds to wait until a batch is full.
- Defaults to
5
seconds.
max_retries
number
- The maximum number of retries for a message, if it fails or
retryAll()
is invoked. - Defaults to
3
retries.
- The maximum number of retries for a message, if it fails or
dead_letter_queue
string
- The name of another Queue to send a message if it fails processing at least
max_retries
times. - If a
dead_letter_queue
is not defined, messages that repeatedly fail processing will eventually be discarded. - If there is no Queue with the specified name, it will be created automatically.
- The name of another Queue to send a message if it fails processing at least
max_concurrency
number
- The maximum number of concurrent consumers allowed to run at once. Leaving this unset will mean that the number of invocations will scale to the currently supported maximum.
- Refer to Consumer concurrency for more information on how consumers autoscale, particularly when messages are retried.
Pull-based
A queue can have a HTTP-based consumer that pulls from the queue. This consumer can be any HTTP-speaking service that can communicate over the Internet. Review Pull consumers to learn how to configure a pull-based consumer.