我有一個SQS Worker Tier Beanstalk應用程序監聽隊列。如果我們遇到任何問題,例如數據庫崩潰,有沒有辦法讓我們臨時阻止工作層工作該隊列,而不必在我們想要恢復時終止環境並重新構建它?暫時暫停SQS工作層應用程序
我想我們會指出一個空隊列,但我寧願避免這種類型的事情。
謝謝
我有一個SQS Worker Tier Beanstalk應用程序監聽隊列。如果我們遇到任何問題,例如數據庫崩潰,有沒有辦法讓我們臨時阻止工作層工作該隊列,而不必在我們想要恢復時終止環境並重新構建它?暫時暫停SQS工作層應用程序
我想我們會指出一個空隊列,但我寧願避免這種類型的事情。
謝謝
另一種選擇是讓它保持原樣。在發生數據庫崩潰或任何其他錯誤的情況下,您的應用程序將返回例如500而不是200,並且消息將被返回到隊列以備將來處理。
對於與我同行的任何人,我只想發佈我自己的,不雅的解決方案。
我們創建了另一個SQS隊列,每當我們想關閉消息處理時,我們只需更新工作層應用程序以指向這個新隊列。它不乾淨,但它確實符合我們的需求。
您可以終止環境並重新創建它。如果您沒有辦法通過一個命令重新創建相同的環境,請查看:https://github.com/ThoughtWorksStudios/eb_deployer
我們遇到的問題是我們將最大重試次數設置爲1.當消息被消耗時通過幾個不同的事務更改數據庫。如果其中一個事務失敗或拋出異常,我們不希望再次使用該消息,而是將其發送到我們的死信隊列。 – northernMonkey 2014-10-30 16:04:48