почему функция Azure имеет таблицу, ссылающуюся на старые данные?

#azure-functions #azure-table-storage

#azure-функции #azure-table-storage

Вопрос:

У меня есть две функции Azure

  1. Из хранилища таблиц извлекается новая запись (функция чтения)
  2. Обновления во-вторых, хранилище таблиц обновляется как обработанное (updateFunction)

обе функции вызывают следующую функцию:

      public static async Task UpdateMessage(CloudTable table, string partitionKey, string rowKey, JobUpdateStatus  updateToStatus)
        {
            TableOperation retrieve = TableOperation.Retrieve<MigrationFeatures>(partitionKey, rowKey);

            TableResult result = await table.ExecuteAsync(retrieve);

            MigrationFeatures newMigrationData = (MigrationFeatures)result.Resu<

            if (result != null)
            {
                var entity = new DynamicTableEntity(newMigrationData.PartitionKey, newMigrationData.RowKey);
                entity.ETag = "*";
                entity.Timestamp = DateTime.Now;
                entity.Properties.Add("JobStatus", new EntityProperty(updateToStatus.ToString()));
                var mergeOperation = TableOperation.Merge(entity);
                var tableResult = await table.ExecuteAsync(mergeOperation);
                var resultUpdate= tableResult.HttpStatusCode; // returns 204
            }
        }
  

Теперь моя функция readFunction запрашивает хранилище таблиц для получения следующего задания, а затем вызывает эту функцию выше.
которая впервые устанавливается с ready на completed. однако в следующий раз, когда он снова переходит к readFunction, он получает ту же запись с исходным состоянием и вызывает повторение процесса.

Почему?

Обновить снимок экрана [![введите описание изображения здесь][1]][1]

Как только процесс проходит через вторую функцию, процесс завершается, и как только он попадает в первую, данные обновляются обратно при обработке [1]:https://i.stack.imgur.com/yjFDO.png

Обновление 2:

При использовании Table.Replace опции вместо Table.Merge данные начали обновляться, но половина данных отсутствовала (нулевые значения)

Комментарии:

1. Не могли бы вы предоставить скриншот данных таблицы?

2. Насколько я понимаю, вы хотите обновить данные одной строки. После этого в строке появляются старые данные и новые данные. Верно?

3. @JimXu Я добавил картинку, чтобы показать данные. Что касается вашего второго комментария, это правильно. Мне кажется, что есть кэш данных или ссылка на старые данные, которые сбрасываются.

4. Если вы хотите обновить данные одной строки и переместить ненужные данные, вы можете использовать метод замены: learn.microsoft.com/en-us/rest/api/storageservices /… и learn.microsoft.com/en-us/rest/api/storageservices/merge-entity

Ответ №1:

Проблема была довольно простой: данные были сохранены, но не реплицированы вовремя, чтобы я мог их прочитать.

Добавление задержки решило проблему