База данных и триггер очереди Azure: как предотвратить одновременный доступ к ресурсам базы данных
Я смотрю в этом блоге
Этот синглтон с размером пакета 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". В этом случае у меня есть дублирование данных.
Блог гарантирует выполнение требования? Есть ли другие варианты?