AWS SNS调用用户端点时是否需要等待响应?
AWS SNS 调用端点响应等待规则说明
- AWS SNS 向 HTTP/HTTPS 订阅端点推送消息时,不会持续等待端点返回响应,默认调用超时时间为15秒,手动可调整的最大超时阈值也仅为60秒,完全无法适配你5-10分钟的长耗时任务场景。
- 如果直接让SNS调用长耗时任务的业务端点,会出现两类问题:
- SNS等待超时后会判定推送失败,按照配置的重试规则反复发起重试,最终导致你的长耗时任务被重复触发
- SNS超时返回后无法感知后续任务的实际执行结果,链路数据会出现断层
- 针对这类长耗时任务场景,建议做架构解耦,常用的可行方案有两种:
- 先让SNS将消息投递到AWS SQS队列,再由你自行部署的消费服务轮询SQS拉取消息,异步触发长耗时任务
- 新增一层轻量中转接口,SNS仅调用该中转接口,中转接口收到请求后立即返回200 OK响应,再异步触发你的长耗时任务执行
内容的提问来源于stack exchange,提问作者AliK
相关产品推荐
相关产品推荐

