Lambda处理SQS消息超时或失败后的重试机制咨询
SQS作为Lambda事件源的重试机制说明
1. 未在可见性超时内处理完消息的情况
如果Lambda函数没能在SQS队列的可见性超时时间内完成消息处理,这条消息会自动恢复可见状态,重新回到队列中,可供其他消费者(包括Lambda)再次获取处理。同时消息的接收次数会累加1,若后续持续处理失败,会按照队列配置的死信队列(DLQ)规则,达到重试阈值后被转入死信队列。
2. 处理过程中出错的重试逻辑
当Lambda在可见性超时到期前处理消息时发生错误,不会立即重试这条失败的记录,具体流程如下:
- Lambda会标记该消息处理失败,并释放对消息的持有
- 消息不会立刻回到队列,需等到当前可见性超时周期结束后,才会重新出现在队列中,等待下一次被Lambda获取处理
- 重试的最大次数由SQS队列的配置决定:你可以在队列设置中指定最大接收次数,当消息被接收并失败的次数达到该值后,会被转入死信队列(若已配置)
内容的提问来源于stack exchange,提问作者ghostrider
相关产品推荐
相关产品推荐

