[ PROMPT_NODE_24216 ]
Queues 说明文档
[ SKILL_DOCUMENTATION ]
# Cloudflare Queues
灵活的消息队列,用于异步任务处理,提供至少一次送达保证和可配置的批处理功能。
## 概览
队列提供:
- 至少一次送达保证
- 基于推送(Worker)和基于拉取(HTTP)的消费者
- 可配置的批处理和重试机制
- 死信队列 (DLQ)
- 最长 12 小时的延迟
**使用场景:** 异步处理、API 缓冲、速率限制、事件工作流、延迟任务
## 快速开始
bash
wrangler queues create my-queue
wrangler queues consumer add my-queue my-worker
typescript
// 生产者
await env.MY_QUEUE.send({ userId: 123, action: 'notify' });
// 消费者(带正确的错误处理)
export default {
async queue(batch: MessageBatch, env: Env): Promise {
for (const msg of batch.messages) {
try {
await process(msg.body);
msg.ack();
} catch (error) {
msg.retry({ delaySeconds: 60 });
}
}
}
};
## 关键警告
**在使用队列之前,请了解这些生产环境中的错误:**
1. **未捕获的错误会重试整个批次**(不仅仅是失败的消息)。请务必对每条消息使用 try/catch。
2. **未确认 (ack) 或未重试的消息将无限期自动重试**,直到达到最大重试次数。请务必显式处理每条消息。
详细解决方案请参阅 [gotchas.md](./gotchas.md)。
## 核心操作
| 操作 | 用途 | 限制 |
|-----------|---------|-------|
| `send(body, options?)` | 发布消息 | 128 KB |
| `sendBatch(messages)` | 批量发布 | 100 条消息/256 KB |
| `message.ack()` | 确认成功 | - |
| `message.retry(options?)` | 带延迟重试 | - |
| `batch.ackAll()` | 确认整个批次 | - |
## 架构
[生产者 Worker] → [队列] → [消费者 Worker/HTTP] → [处理]
- 每个账户最多 10,000 个队列
- 每个队列每秒 5,000 条消息
- 4-14 天保留期(可配置)
## 阅读顺序
**初次接触队列?** 从这里开始:
1. [configuration.md](./configuration.md) - 设置队列、绑定、消费者
2. [api.md](./api.md) - 发送消息、处理批次、确认/重试模式
3. [patterns.md](./patterns.md) - 实际案例和集成
4. [gotchas.md](./gotchas.md) - 关键警告和故障排除
**基于任务的路由:**
- 设置队列 → [configuration.md](./configuration.md)
- 发送/接收消息 → [api.md](./api.md)
- 实现特定模式 → [patterns.md](./patterns.md)
- 调试/故障排除 → [gotchas.md](./gotchas.md)
## 本参考文档包含
- [configuration.md](./configuration.md) - wrangler 配置。