用途:在 Cloudflare Workers 上构建异步消息队列,将耗时或需重试的任务从请求路径中剥离,做后台处理、批处理与失败兜底。依赖 cloudflare-worker-base,资料标注版本 wrangler@4.43.0、@cloudflare/workers-types@4.20251014.0,状态为 Production Ready。
主要能力:用 npx wrangler queues create my-queue 创建队列,wrangler.jsonc 配置 producers 与 consumers 绑定;生产者可用 send() 发送单条消息(支持 delaySeconds 延迟,0–43200 秒),用 sendBatch() 批量发送(单批最多 100 条、总计 256 KB,单条 128 KB)。消费者导出 queue(batch, env, ctx) 处理 MessageBatch,按 max_batch_size 与 max_batch_timeout 触发。
重试与可靠性:消息有 id、timestamp、body、attempts 字段,可 ack() 确认或 retry({delaySeconds}) 重试,便于按 attempts 做指数退避;消费配置支持 max_retries、retry_delay、max_concurrency、dead_letter_queue。死信队列需单独创建,失败超限后转入 DLQ,DLQ 中消息无消费者时保留 4 天;未配置 DLQ 的失败消息会被永久删除。
使用方式:分别创建生产者与消费者 Worker,可 npm create cloudflare@latest my-consumer -- --type hello-world --ts,部署后用 curl 发消息、npx wrangler tail 查看日志。
适用场景:异步任务、邮件发送、批量写入、限流 API 调用、非幂等数据库操作与需显式确认的流程。
限制:消息体须可 JSON 序列化,单条超 128 KB 会失败;批内顺序仅为尽力而为;隐式 ack 在部分失败时可能重复处理;并发、价格与配额等资料未提供。