SQS docs говорит, что в редких случаях SQS может отправлять двойное сообщение. Будет ли SQS по-прежнему использовать параметр VisibilityTimeout?
Скажите, что моя очередь настроена с VisibilityTimeout 2 минуты.
Вот шаги в приложении.
- Получение сообщения
- Process Message: этот шаг происходит в нашем приложении. Мы делаем много вещей, но главное, мы увеличиваем счетчик и только так часто (каждые 30 секунд) пишем в базу данных.
- Удалить сообщение. Между полученным сообщением и Удалить сообщение может быть, что мы получили сообщение, но удалили его только через 30 секунд.
В обычном случае SQS никогда больше не отправит это сообщение. Но в случае двойного сообщения приложение снова будет получено приложением.
Вопрос: будет ли SQS поддерживать настройку VisibilityTimeout в течение 2 минут, а дублирование произойдет только через 2 минуты после настройки VisibilityTimeout?
Или сообщение может отображаться в любое время, оно может быть немедленно (как в пределах лимита VisibilityTimeout)