2016-03-02 104 views
0

有沒有辦法將消息從一個隊列移動到另一個隊列?由於資源不可用,我們有一種情況是消息可能在DLQ中結束。問題解決後,我們希望將郵件移回原始隊列並重新處理。對於我們的跟蹤目的,如果保留原始的MessageId和SentTimestamp,那將會很好。將SQS消息移動​​到不同的隊列

我發現的最接近的事情是創建一個新的SendMessageRequest對象並複製消息的內容。但是,這將創建一個全新的消息,並帶有新的ID和時間戳。

當消息被移動時,DLQ的id和timestamp被保留。難道不可能以某種方式扭轉這種行爲嗎?

回答

2

不可以。在隊列之間移動時,不能保留消息ID。 SQS給你的ID和時間戳:

http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ImportantIdentifiers.html

你可以做的是在你的應用程序,您可以:

  • 必須從兩個隊列挑選(而在正常操作模式的能力,你只是有正常的隊列)。您在重新處理時啓用DLQ
  • 當您在消息正文中標記messageid和時間戳時,您在應用程序中首先查看消息本身之前查看消息正文。 (你仍然需要使用sqs分配的messageid來確認處理過程)
相關問題