SQS уже делает это для вас.Атрибут «тайм-аут видимости» гарантирует, что задача видна только одному работнику, если вы выровняете ее с максимальным временем выполнения.
Рабочий извлечет объект из SQS.SQS гарантирует, что он будет доставлен только один раз и невидим для других во время тайм-аута видимости.Вы должны дать максимальное время выполнения задачи.Скажем 5 минут.И установите более высокий тайм-аут видимости.Скажем 6 минут.По истечении этого времени, если работник не выполнил задание успешно, элемент будет невидим для других в течение еще одной минуты, а затем вернется в очередь.После этого другой работник может забрать сообщение, и оно снова станет невидимым для других в течение 6 минут.В случае успеха рабочий должен удалить сообщение.
Таким образом, вы гарантируете, что каждый элемент получит только обработанные.