适合场景
发邮件、Webhook、批量处理、日志缓冲、事件驱动
Wrangler 配置
{
"queues": {
"producers": [{ "binding": "QUEUE", "queue": "jobs" }],
"consumers": [{ "queue": "jobs", "max_batch_size": 10 }]
}
} Worker 代码
// 生产
await env.QUEUE.send({ kind: "email", to: "x@y.com" });
// 消费(同一个 Worker 暴露 queue handler)
export default {
async queue(batch, env) {
for (const msg of batch.messages) {
await sendEmail(msg.body);
}
},
}; 实现注意事项
- ● 单条消息上限 128KB;大 payload 放 R2,队列里只存引用
- ● 消费失败默认重试整个 batch;用 retryAll/ackAll 控制粒度
- ● 顺序保证有限;严格顺序场景考虑 Durable Objects
已复制