gpt4 book ai didi

java - AWS Lambda + SQS(Java)。 Lambda 成功完成工作,但未从 SQS 中删除消息。是否应该再次发送此消息进行处理?

转载 作者:行者123 更新时间:2023-12-01 19:10:29 25 4
gpt4 key购买 nike

我遇到过这样的 aws sqs 行为。

我有 lambda 是由 api 网关触发的。在这个 lambda 中,在某些情况下我需要重新处理传入的请求。因此,在这种情况下,我将传入请求作为消息发送到 sqs,延迟(30 秒)。在 sqs 中,“默认可见性超时”设置为 1 分钟并链接 dlq 队列。

在 lambda 中我有下一个逻辑:

  1. 当我收到 api 网关的请求并且我的 lambda 决定重新处理它时,它第一次将消息发送到 sqs 进行重新处理。我的 lambda 在 30 秒内收到消息。好的。

  2. 但是,当在重新处理过程中我需要再次重新处理它时,我的 lambda 不执行任何操作,只是完成。因为在 aws 文档中说,对于 sqs 中的消息确认,我需要发送删除请求。 Lambda 不发送它。我认为它应该有效。但事实并非如此。

  3. 然后我的 lambda 不再收到此消息,而且我在队列中也没有看到该消息。

  4. 但是当我抛出异常而不是简单地完成工作时,lambda 再次收到消息。

这是否真的需要再次抛出从 sqs 向 lambda 获取消息的异常,而不是简单地不发送消息的删除请求。

谢谢!

最佳答案

正如您为 SQS 编写的文档所说,消息需要从队列中删除才能被视为已处理。否则,它们将被视为未处理,SQS 将尝试再次传送它们,直到达到配置的限制。

如果 AWS 文档说明了某些内容并且 AWS 可以正常工作,那么就无需询问 AWS 文档是否真的正确。

关于java - AWS Lambda + SQS(Java)。 Lambda 成功完成工作,但未从 SQS 中删除消息。是否应该再次发送此消息进行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59487779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com