SuperAPI AI 工具集

vercel-queues

办公与效率

查看项目

更新于 10-16 03:05

技能介绍

用途:Vercel Queues 是持久化、仅追加的事件流系统,用于无服务器应用中的异步事件投递、扇出与路由控制,也是 Vercel Workflow 的底层原语。消息在 send() 返回前写入 3 个可用区,保留最长 24 小时(可配置 60 秒至 24 小时),写入顺序为近似而非严格 FIFO,消费者组彼此独立并各自记录位置。

主要能力:支持主题发布、独立消费者组、自动重试、分片与至少一次投递;支持延迟投递(delaySeconds)、幂等键去重(覆盖整个保留窗口)、自定义保留时间与消息头。提供推送模式(Next.js App Router 的 handleCallback,路由与公网隔离,仅由 Vercel 内部队列基础设施调用)与轮询模式(PollingQueueClient,可从任意基础设施消费)。传输方式含默认 JsonTransport、BufferTransport 与 StreamTransport。

使用方式:包为 @vercel/queue@^0.1.3(Node.js 22+)。发布用 send(topic, payload, options);推送消费者用 handleCallback 并可在 vercel.json 的 experimentalTriggers 中配置 queue/v2beta 触发器;轮询用 receive(topic, group, handler, { limit }),每次最多 10 条。同一主题的多个路由文件会创建独立消费者组。SDK 在 Vercel 上通过 OIDC 自动认证,非 Vercel 环境需设置 VERCEL_QUEUE_API_TOKEN。本地开发时 send() 会发往真实队列服务并在进程内直接调用已注册的 handleCallback。

适用场景:延迟昂贵工作(邮件、PDF、外部 API 调用)、吸收流量峰值、函数崩溃时保证投递、将同一事件扇出到多条独立管道、通过幂等键去重。

限制:不适合多步有状态编排(用 Workflow)、周期性调度(用 Cron Jobs)或同步请求响应(直接用 Functions);跨区域消息无法从另一区域消费。关键上限:消息大小最大 100 MB,每次接收 1–10 条(默认 1),可见性超时 0 秒至 60 分钟(SDK 默认 5 分钟,API 默认 60 秒),主题与消费者组数量不限。计费按 API 操作(发送、接收、删除、可见性变更、通知),$0.60/1M 次(按区域定价),消息按 4 KiB 分块计量,带幂等键的发送与设置最大并发的推送投递按 2 倍计费,推送模式函数按现有 Fluid 计算费率计费。推送模式下主题默认按部署 ID 分区,消息回投到发布它的同一部署。可观测性位于项目 → Observability → Queues,可按项目、队列、消费者查看指标,并用最大消息年龄检测消费滞后。

注意:该服务 2026 年 2 月 27 日进入公开测试版,API 较新,使用前应查阅官方文档 https://vercel.com/docs/queues 确认 Queue 类 API、消息发布、消费者设置与可见性超时模式。