重新处理AWS SQS死信队列消息

时间:2019-10-17 15:42:45

标签: amazon-web-services aws-lambda amazon-sqs

我正在使用aws sdk将lambda失败的消息发送到死信队列。我想等待几个小时,然后再将消息发送回主队列进行重新处理。我的死信队列中有一个lambda。我可以使用延迟将消息发送到死信队列。但是最大延迟是15分钟。但我想等待更多时间。有人做过吗?

2 个答案:

答案 0 :(得分:1)

不打算以此方式使用Amazon SQS 。其主要目的是存储消息,然后在请求时将其提供回来。

其他一些选择:

  • 将消息存储在数据库中,并让应用程序根据时间戳字段
  • 搜索相关消息
  • 在AWS Step Functions(具有延迟功能)上延迟一些棘手的事情

答案 1 :(得分:0)

this answer所示,您可以通过为每个消息提供时间戳并仅处理现在正在排队的消息来延长延迟。

message = SQS.poll_messages
if message.perform_message_at > Time.now
   SQS.push_to_queue({perform_message_at : "Thursday November 
   2022"},delay:15 mins)
else
   process_message(message)
end