~/VibeHandbook
$39

Cloudflare

developers.cloudflare.com

Queues

它是什么

Cloudflare Queues 是为 Workers 提供的托管消息队列。一个 Worker 把消息推入队列(生产者);另一个 Worker 则会被以这些消息的批次形式唤起以处理它们(消费者)。这让你能够把缓慢或不可靠的工作与触发它的请求解耦——快速接受请求,在后台完成工作。

优势

  • 把生产者与消费者解耦,抹平流量尖峰。
  • 自动批处理、重试,以及用于失败的死信队列(dead-letter queue)。
  • 纯 Workers 集成——生产者和消费者都是带绑定的 Workers。
  • 无需运维基础设施;随你的流量扩缩。
  • 保证至少一次(at-least-once)投递,因此消息不会被悄然丢失。

取舍

  • 至少一次投递意味着消费者应当是幂等的(能处理重复)。
  • 不适合即时的同步响应——工作是异步发生的。
  • 顺序是尽力而为,并非严格的全局顺序。
  • 吞吐量和消息大小有需要围绕设计的限制。

何时使用

把 Queues 用于后台作业:发送邮件、处理上传、调用缓慢的第三方 API、扇出(fan out)webhook,或缓冲写入——任何你不愿让用户等待的事情。

Vibe coding 契合度

对于 agent 来说,Queues 是一种无需架设消息代理(broker)就能添加后台处理的清爽方式。让它把消费者做成幂等的(使用消息键),并设置一个死信队列以便失败可见。下面的配置把一个 Worker 同时接成某队列的生产者和消费者。

# wrangler.toml
[[queues.producers]]
queue = "jobs"
binding = "JOBS"

[[queues.consumers]]
queue = "jobs"
max_batch_size = 10
dead_letter_queue = "jobs-dlq"
npx wrangler queues create jobs
npx wrangler deploy