База данных и триггер очереди Azure: как предотвратить одновременный доступ к ресурсам базы данных

Я смотрю в этом блоге

https://medium.com/@yuka1984/azure-functions-%E3%81%AE-singletonattribute%E3%81%A8mode%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3-bb728062198e

Этот синглтон с размером пакета 1 позволит очереди выполнять функцию очереди по одному за раз в одном случае, даже если функция масштабируется. Почему мне это нужно, я хотел, чтобы база данных, вызываемая функцией Azure, не обновляла одну и ту же таблицу одновременно, делая ее несовместимой с данными.

Например, экземпляр A выполняет проверку данных в базе данных и изменяет некоторые значения. В то же время экземпляр B выполняет проверку данных в базе данных и также изменяет значения. Ожидаемый результат - измененные данные сначала, чем экземпляр B, но B выполняются быстрее, чем экземпляр A, поэтому экземпляр B обновляется первым. Что не было моим ожидаемым результатом.

Порядок исполнения в порядке, но я не хочу путать вставку данных.

Экземпляр A содержит данные [1,2,3,4] Экземпляр B содержит данные [2,4,6,7]

Если выполнить A или B, результат будет [1,2,3,4,6,7]. Если выполнить одновременно, есть вероятность, что [1,2,2,3,4,6,7]

Во время выполнения A, возможно, еще не было "2" в таблице при выполнении B. Поэтому B также вставило "2". В этом случае у меня есть дублирование данных.

Блог гарантирует выполнение требования? Есть ли другие варианты?

0 ответов

Другие вопросы по тегам