Ответ, который вы указали, является точным.
Вы должны написать программу, которая опрашивает SQS на предмет сообщения (или до 10 сообщений).Более эффективно использовать длинные опросы, так как вам требуется меньше звонков.
Если вы хотите узнать о сообщении очень быстро, вам придется постоянно опрашивать.То есть, как только он вернется и скажет «нечего получить», вам следует позвонить еще раз.Чтобы уменьшить частоту этих вызовов, вы можете установить длительный опрос , максимум до 20 секунд.Это означает, что, если в очереди нет сообщений, опция ReceiveMessages()
займет 20 секунд, прежде чем вернет ответ «нет сообщений».Однако, если сообщение тем временем прибывает, оно ответит немедленно.Параметр длинного опроса указывается при отправке запроса ReceiveMessages()
.
Если вам не требуется мгновенное уведомление, ваше приложение может звонить реже (например, каждую минуту или каждые несколько минут).Для этого потребуется меньше вызовов на Amazon SQS.
При совершении вызова ReceiveMessages()
ваше приложение может запросить до 10 сообщений .Это означает, что может быть возвращено несколько сообщений.
Как только ваше приложение завершит обработку сообщения, оно должно вызвать DeleteMessage()
, чтобы удалить сообщение из очереди.Это отказоустойчивая система, которая автоматически помещает сообщение обратно в очередь, если возникает проблема с приложением и сообщение не обрабатывается должным образом.
Это отличное видео с конференции AWS re: Inventэто объясняет Amazon SQS (и Amazon SNS) в деталях: AWS re: Invent SVC 105: Обмен сообщениями AWS