用途
Upstash QStash 是一个无服务器消息队列与任务投递服务,核心理念是「HTTP 进,HTTP 出,中间保证可靠性」。它适用于需要「稍后可靠地发起这个 HTTP 调用」的场景,无需管理任何基础设施。本技能面向希望使用 QStash 构建可靠无服务器消息系统的开发者。
主要能力
- qstash-messaging:消息发布与投递
- scheduled-http-calls:定时 HTTP 调用
- serverless-cron:无服务器 Cron 定时任务
- webhook-delivery:Webhook 投递
- message-deduplication:消息去重
- callback-handling:回调处理
- delay-scheduling:延迟调度
- url-groups:URL 分组
使用方式
资料中提供了若干模式(Patterns):
- 基础消息发布:将消息投递到指定端点
- 定时 Cron 任务:设置周期性计划任务
- 签名验证:在端点中验证 QStash 消息签名
适用场景
适合需要可靠 HTTP 任务投递、定时任务、Webhook 投递的无服务器应用。资料提到可与 vercel-deployment、nextjs-app-router、redis-specialist、email-systems、supabase-backend、cloudflare-workers 等技能配合使用。
限制与注意事项
资料列出了反模式(Anti-Patterns):
- 跳过签名验证
- 使用私有端点
- 端点中无错误处理
以及若干「尖锐边缘」(Sharp Edges)问题及建议:
- 未验证 QStash Webhook 签名(严重):始终使用两个密钥验证签名
- 回调端点响应过慢(高):设计为快速确认
- 意外触及 QStash 速率限制(高):检查你的套餐限制
- 关键操作未使用去重(高):对关键消息使用去重
- 期望 QStash 访问私有/localhost 端点(严重):需满足生产环境要求
- 对所有消息类型使用默认重试行为(中):按消息配置重试
- 发送大负载而非引用(中):发送引用而非数据
- 关键流程未使用 callback/failureCallback(中):对关键操作使用回调
具体配置代码、套餐价格、平台细节等资料暂未提供。