当前位置: 首页 > 知识库问答 >
问题:

AWS SQS Lambda,我应该删除消息吗?NodeJS

孟凯泽
2023-03-14

我最近开始使用AWS,我的第一项工作是使用lambda函数使用SQS队列。

我知道我不需要调用receiveMessage,因为lambda函数已经在这里接收消息:

exports.handler = async(event, context) => {
let i = 0;

for (const record of event.Records) {
...
}
};

我的问题是:我应该给sqs打电话吗。是否为收到的每条消息删除消息?我知道lambda函数会自动删除已处理的消息,但一位朋友告诉我,我仍然需要手动调用deleteMessage,因为如果发生错误,如果我不手动删除每条消息,所有消息都会返回队列。

非常感谢。

共有1个答案

胥康安
2023-03-14

如果您的Lambda函数返回成功代码,那么消息将被自动删除。如果发生错误,并且您的函数返回错误响应,那么消息将再次排队(取决于队列的设置)。您永远不应该自己删除消息。为什么要绕过错误处理并重试SQS内置的功能?

如果永远不想重试消息,只需适当地配置队列即可。特别是,应使用SQS队列上的最大接收数和DLQ设置(可选)来定义错误处理行为。

 类似资料:
  • 问题内容: 我知道该ValueEventListener线程在新线程中运行,是否应该在任何时间删除此线程以进行适当的线程管理?(例如,没有太多并行运行的线程)。如果是,该怎么办? 问题答案: 在谈论监听器时,是的,您需要根据活动的生命周期将其删除,为此,您需要使用以下代码行: 请记住,如果不这样做,最终将浪费您的电池和带宽。所以: 如果已在中添加了侦听器,则onStart必须在中将其删除onSto

  • 嗨,我已经在不和谐的py日志删除消息,但现在它是这样的,当消息被删除的机器人什么都没有显示,我可以以某种方式使没有消息发送时,机器人删除消息

  • 我希望将从jms队列接收的消息发送到spring pub子通道,以便将相同的消息转发到两个目的地。poller在直接频道上工作正常,但在向pub子频道发布消息时会删除消息。请让我知道我错过了什么。

  • 我试图在WebLogic10r3服务器上调试一个web应用程序主机。该应用程序通过Java消息驱动bean接收来自外部IBM JMS队列(classname:)的输入。 我写了一个小的测试应用程序来连接到队列并发送测试消息。目前的问题是测试消息会生成异常,并且不知何故它会被放回队列中,并一次又一次地循环。这会产生大量异常,使日志不可读。 代码概述了JMS生产者:

  • 我正在创建一个嵌入,您可以通过响应在页面中导航。通过遵循一个教程,我想到了这一点,但问题是:当用户对它做出反应时,它会删除所有相同类型的反应(基本上,如果我使用❤️, 机器人消除了我和他们的反应,让⚙️ 是唯一可用的反应) 希望你能理解我的问题,我只是想让机器人消除我的反应,而不是全部。