#azure-functions #azure-table-storage
#azure-функции #azure-table-storage
Вопрос:
У меня есть две функции Azure
- Из хранилища таблиц извлекается новая запись (функция чтения)
- Обновления во-вторых, хранилище таблиц обновляется как обработанное (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:
Проблема была довольно простой: данные были сохранены, но не реплицированы вовремя, чтобы я мог их прочитать.
Добавление задержки решило проблему