implement-queue
Set up queue processing with Cloudflare Queues for asynchronous task handling.
Overview
The implement-queue command creates a complete queue processing system using Cloudflare Queues, enabling reliable asynchronous task processing with automatic retries and dead letter queues.
Usage
bash
/template implement-queue <queue-name> [options]Parameters
<queue-name>- Name of the queue to implement (e.g.,email-queue,image-processing)
Options
--max-retries- Maximum retry attempts (default: 3)--batch-size- Number of messages to process in batch (default: 10)--visibility-timeout- Message visibility timeout in seconds (default: 30)
Examples
Basic Queue
bash
/template implement-queue notification-queueImage Processing Queue
bash
/template implement-queue image-processing --batch-size 5 --visibility-timeout 300Email Queue with High Retries
bash
/template implement-queue email-queue --max-retries 5What It Creates
Queue Configuration
wrangler.tomlqueue binding- Queue consumer worker
- Message producer utilities
- Dead letter queue setup
Generated Structure
src/
├── queues/
│ ├── [queue-name]/
│ │ ├── consumer.ts # Queue consumer logic
│ │ ├── producer.ts # Message producer utility
│ │ ├── types.ts # Queue message types
│ │ └── handler.ts # Message processing logic
│ └── index.ts # Queue exportsExample Consumer
typescript
// src/queues/email-queue/consumer.ts
export async function handleEmailQueue(batch: MessageBatch<EmailMessage>) {
for (const message of batch.messages) {
try {
await processEmail(message.body);
message.ack();
} catch (error) {
message.retry();
}
}
}Example Producer
typescript
// src/queues/email-queue/producer.ts
export async function sendToEmailQueue(env: Env, email: EmailMessage) {
await env.EMAIL_QUEUE.send(email);
}Best Practices
- Idempotent Processing: Ensure messages can be processed multiple times safely
- Error Handling: Implement proper retry logic
- Monitoring: Add logging and metrics
- Batch Processing: Use batching for efficiency
- Timeouts: Set appropriate visibility timeouts
Common Patterns
With R2 Storage
bash
/template add-r2-storage uploads
/template implement-queue file-processingWith Scheduled Jobs
bash
/template implement-queue cleanup-queue
/template add-worker-cron cleanup-trigger "0 * * * *"Multi-Stage Processing
bash
/template implement-queue upload-queue
/template implement-queue processing-queue
/template implement-queue notification-queueIntegration Points
- Workers KV: For job status tracking
- R2: For file processing queues
- D1: For queue metadata
- Analytics: For queue metrics
Error Handling
The command includes:
- Automatic retries with exponential backoff
- Dead letter queue for failed messages
- Error logging and alerting
- Message deduplication
Performance Considerations
- Batch processing for efficiency
- Concurrent message handling
- Memory-efficient processing
- Optimized for edge runtime
Related Commands
add-worker-cron- Schedule queue processorsadd-r2-storage- For file processing queuessetup-analytics- Monitor queue performance
