当使用具有死信和Lambda的SQS时,为什么在Lambda运行时异常失败后,消息仍保持“正在处理”状态5分钟?
我创建了3个资源
MyQueue(配置为将无法投递的消息发送到MyQueueDLQ。默认可见性超时:30秒)
MyQueueDLQ
Lambda(重试尝试设置为0,超时时间30秒)
由于某种原因,我期望(可能是由于缺乏理解)在我的Lambda失败时,死信队列会在失败后不久收到消息。(而不是几分钟后)
如何确保死信队列以最快的方式获取消息,以便任何响应死信队列消息的内容都不必等待几分钟?
注意:我故意在Lambda中抛出运行时异常来测试这一点,以便我了解所有工作原理。
我的目标是确保消息尽快进入死信队列。 5分钟是我能做到的最好吗? 更新1:我已将lambda的超时时间设置为5秒,队列的超时时间设置为25秒,现在需要大约1分40秒才能将消息发送到DLQ。这仍然无法满足我的期望。难道消息不应该在25秒内到达DLQ吗? 更新2:今天我在AWS Explorer SQS队列底部窗口上发现了一个小信息图标。这可能很好地描述了我所看到的情况
。
我创建了3个资源
MyQueue(配置为将无法投递的消息发送到MyQueueDLQ。默认可见性超时:30秒)
MyQueueDLQ
Lambda(重试尝试设置为0,超时时间30秒)
由于某种原因,我期望(可能是由于缺乏理解)在我的Lambda失败时,死信队列会在失败后不久收到消息。(而不是几分钟后)
如何确保死信队列以最快的方式获取消息,以便任何响应死信队列消息的内容都不必等待几分钟?
注意:我故意在Lambda中抛出运行时异常来测试这一点,以便我了解所有工作原理。
我的目标是确保消息尽快进入死信队列。 5分钟是我能做到的最好吗? 更新1:我已将lambda的超时时间设置为5秒,队列的超时时间设置为25秒,现在需要大约1分40秒才能将消息发送到DLQ。这仍然无法满足我的期望。难道消息不应该在25秒内到达DLQ吗? 更新2:今天我在AWS Explorer SQS队列底部窗口上发现了一个小信息图标。这可能很好地描述了我所看到的情况
![enter image description here](https://istack.dev59.com/xUCAM.webp)