Move SQS Message To Different Queue
是否可以将消息从一个队列移到另一个队列?我们有一种情况,由于资源不可用,消息可能最终出现在DLQ中。解决问题后,我们希望将邮件移回原始队列,然后再次进行处理。对于我们的跟踪目的,最好保留原始的MessageId和SentTimestamp。
我找到的最接近的东西是创建一个新的SendMessageRequest对象,并将消息的内容复制过来。但这将创建一条具有新ID和时间戳的全新消息。
当移动消息DLQ时,将保留id和时间戳。
不。在队列之间移动时,您无法保留消息ID。 SQS为您提供ID和时间戳:
http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ImportantIdentifiers.html
您可以在应用程序中执行以下操作之一:
- 可以从两个队列中进行选择(在正常操作模式下,您只有正常队列)。您在重新处理时启用DLQ
- 重新排队时,您可以在消息正文中标记messageid和时间戳,在应用程序中,您首先要查看消息正文,然后再查看消息本身。 (尽管您仍然需要使用sqs分配的messageid来确认处理)