Как выполнить операцию экземпляра в режиме синхронизации
Я новичок в Azure, но я понимаю проблемы его модели параллельного выполнения. У меня проблема с синхронизацией операций в моем процессе веб-экземпляра. У меня есть 2 экземпляра для примера (A и B). У меня есть хранилище таблиц, в котором есть SomeData с некоторыми столбцами, но два столбца (A,B) в строке должны быть УНИКАЛЬНЫМИ. * Таким образом, когда пользователь вставляет SomeData, я проверяю, существует ли SomeData со столбцами A,B NOT в моей Таблице, и вставляет эти данные. Но два пользователя параллельно могут добавить SomeData с одинаковыми столбцами A,B. Как устранить логические дубликаты в этом случае. Я думаю об аренде BLOB-объектов, но, может быть, в этой ситуации существуют более удобные способы? Я хочу выполнить некоторый код (если не существует... делать... или, если существует... делать...) в моих экземплярах последовательным образом.
1 ответ
Если предположить, что экземпляры A и B вводят вставку одних и тех же данных (тот же PartitionKey/RowKey), то только один из экземпляров сможет успешно ввести данные. Другой экземпляр получит 409 - Conflict
ошибка. Разве вы не можете построить свою логику вокруг этого? В случае сбоя вставки объекта вы проверяете код ошибки, а если код ошибки конфликтует, то делаете что-то еще.
Я не думаю, что аренда блобов будет полезна в этом случае. Они больше подходят в сценарии, когда вы хотите, чтобы только один экземпляр выполнял вставку.