Skip to main content

Queue

Creates and manages Cloudflare Queues for reliable message delivery between workers.

Props

name
string
Name of the queue.
settings
QueueSettings
Settings for the queue.
dlq
string | Queue
Dead letter queue for failed messages.
const dlq = await Queue("failed-tasks");
const queue = await Queue("tasks", {
  dlq: dlq
});
delete
boolean
default:"true"
Whether to delete the queue when the resource is removed from Alchemy.
adopt
boolean
default:"false"
Whether to adopt an existing queue with the same name if it exists.

Output

id
string
The unique ID of the queue.
name
string
The name of the queue.
createdOn
string
Time when the queue was created.
modifiedOn
string
Modified timestamp.
type
queue
Type identifier for the binding.

Examples

Basic Queue

const queue = await Queue("tasks", {
  name: "task-queue"
});

Queue with Custom Settings

const queue = await Queue("delayed-queue", {
  name: "delayed-queue",
  settings: {
    deliveryDelay: 30,
    messageRetentionPeriod: 86400
  }
});

Queue with Dead Letter Queue

const dlq = await Queue("dlq-queue");

const mainQueue = await Queue("main-queue", {
  dlq: dlq
});

Queue Producer and Consumer

const processingQueue = await Queue("processing-queue");

const worker = await Worker("processor", {
  entrypoint: "./src/processor.ts",
  bindings: {
    QUEUE: processingQueue
  },
  eventSources: [{
    queue: processingQueue,
    settings: {
      batchSize: 25,
      maxConcurrency: 5,
      maxRetries: 3,
      maxWaitTimeMs: 1500,
      retryDelay: 45,
      deadLetterQueue: "failed-processing"
    }
  }]
});

Build docs developers (and LLMs) love