порядок не гарантируется, возможность доставки сообщений более одного раза и более одного EC2, получающего одно и то же сообщение
. Вероятность получения одного и того же сообщения более одного раза низкий. Это просто «возможно», но не очень вероятно. Если это по существу только раздражение, если в отдельных случаях вам придется обрабатывать файл более одного раза, то SQS кажется вполне разумным вариантом.
В противном случае вам понадобится внешний механизм.
Установка «заблокированного» заголовка объекта имеет свою проблему - когда вы перезаписываете объект с помощью самой копии (это происходит при изменении метаданных - новой копии объекта создается с одним и тем же ключом), тогда вы подвержены строкам и стрелкам возможной согласованности.
Q: Какая модель согласованности данных использует Amazon S3?
Amazon Ведра S3 во всех регионах обеспечивают согласованность после записи для PUTS новых объектов и возможную согласованность для перезаписывания ПУТС и DELETES.
https://aws.amazon.com/s3/faqs/
Обновление метаданных - это «переписать
PUT
». Ваш новый заголовок может быть не сразу видимым, и если два или более рабочих задают свой собственный уникальный заголовок (например, x-amz-meta-locked: i-12345678), вполне возможно, что сценарий, подобный следующему, будет воспроизведен (W1, W2 = Worker # 1 и # 2):W1: HEAD object (no lock header seen) W2: HEAD object (no lock header seen) W1: set header W2: set header W1: HEAD object (sees its own lock header) W2: HEAD object (sees its own lock header)
Тот же самый или аналогичный сбой может произойти с несколькими различными перестановками времени.
Объекты не могут быть эффективно заблокированы в возможная среда согласования.