失败的 lambda 和 SQS 重试间隔 - 澄清?
Failed lambda and SQS retry interval - Clarification?
我有一个附加了 Lambda 的简单 SQS。
在 lambda 中 - 我这样做 :
- Ping 外部 HTTP 端点
- 故意 通过抛出异常来使消息失败。 (因为我要测试重试机制)
以下是 SQS 设置:
以及 DLQ 设置:
但是当我看到 HTTP 端点 Ping 时,我看到了这个:
所以每次尝试之间的重试次数是:
0:35
2:25
2:59
3:00
3:01
问题
1 - 为什么会有这样的延误?
我认为当 Lambda 无法处理消息时,它会等待可见性超时结束,然后 - 另一个消费者可以使用它。如果是这样,为什么我看到延迟少于 3 min
?
2 - 为什么当我明确设置 Max Receives
= 5
时有 6
次调用?
我找到了症状原因:
起初是 30 秒。但是当我将它(组织要求我更改)更改为 lambda 超时 ( 6 * 30 sec = 180 sec = 3 min)
到 3 min
的 6 倍时,我看到了我在问题中提到的那些时间。我不明白为什么我看到的消息少于 3 min
window
我有一个附加了 Lambda 的简单 SQS。
在 lambda 中 - 我这样做 :
- Ping 外部 HTTP 端点
- 故意 通过抛出异常来使消息失败。 (因为我要测试重试机制)
以下是 SQS 设置:
以及 DLQ 设置:
但是当我看到 HTTP 端点 Ping 时,我看到了这个:
所以每次尝试之间的重试次数是:
0:35
2:25
2:59
3:00
3:01
问题
1 - 为什么会有这样的延误?
我认为当 Lambda 无法处理消息时,它会等待可见性超时结束,然后 - 另一个消费者可以使用它。如果是这样,为什么我看到延迟少于3 min
?2 - 为什么当我明确设置
Max Receives
=5
时有6
次调用?
我找到了症状原因:
起初是 30 秒。但是当我将它(组织要求我更改)更改为 lambda 超时 ( 6 * 30 sec = 180 sec = 3 min)
到 3 min
的 6 倍时,我看到了我在问题中提到的那些时间。我不明白为什么我看到的消息少于 3 min
window