2016-12-25 5 views
0

Звонок ReceiveMessage может возвращать до 10 сообщений из очереди (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html). Я использую длинный опрос.Установка тайм-аута видимости для SQS при приеме до 10 сообщений

Я буду перебирать список полученных сообщений и обрабатывать их в одном потоке. Означает ли это, что я должен установить VisibilityTimeout для очереди (expected time to process single message) * 10.

Или, SQS позаботится об этом для меня автоматически? Если так, мне было бы интересно узнать об этом, так как я не смог найти какие-либо разъяснения в документах.

ответ

0

Означает ли это, я должен установить VisibilityTimeout для очереди, чтобы быть (ожидаемое время обработки одного сообщения) * 10.

Да

Или же SQS заботиться это для меня автоматически?

№ Как это было бы возможно? Как только вы получили 10 сообщений, SQS не имеет видимости того, что вы делаете с ними. Он не знает, что представляет собой «обработка» каждого сообщения в вашем приложении. Все SQS знает, что он передал 10 сообщений вашему приложению.

В качестве альтернативы, установите MaxNumberOfMessages на номер 1, чтобы ваше приложение получало только одно сообщение от SQS.

+0

RabbitMQ может работать это автоматически, предполагая, что соединение скончалось, сообщение должно быть вызвано. Имеет больше смысла, чем SQS, и увеличивает тайм-аут видимости в определенных случаях. – NeverEndingQueue