Я использую таблицу хранения Azure с python и пытаюсь вставить пакет сущностей. При первом добавлении объекта, когда его нет в таблице, он работает быстро (как и ожидалось). Во второй раз, чтобы вставить ту же сущность, код просто застрял на минуту и ничего не произошло.
код
Это мой пакетный вкладыш:
acc_name = 'AccountName'
acc_key = 'MyKey'
table_name='MyTable'
service = TableService(account_name=acc_name, account_key=acc_key)
batch = TableBatch()
batch.insert_entity({
'PartitionKey': 'PARTITION1',
'RowKey': "1",
'someKey': 'key'
})
service.commit_batch(table_name, batch)
Просто попробуйте запустить этот код дважды. Первый раз это будет работать, во второй раз он застрянет на минуту с и вернет ошибку:
Client-Request-ID=a734f002-7dff-11e8-b587-28c63f6cb636 Retry policy did not allow for a retry: Server-Timestamp=Mon, 02 Jul 2018 13:55:29 GMT, Server-Request-ID=4168269a-0002-0073-640c-121de2000000, HTTP status code=202,
Exception=The specified entity already exists.RequestId:4168269a-0002-0073-640c-121de2000000Time:2018-07-02T13:55:30.4994452Z.
Тест № 1
Я почти уверен, что это не запланированное поведение, так как, когда я запускаю эквивалентный код в C #, он сразу генерирует исключение: «Элемент в индексе 0 уже существует». Что имеет смысл ...
Тест № 2
Еще один тест, который я сделал, - вставить объект, а не в пакетном режиме. В этом случае, когда объект уже находится в таблице, он просто генерирует исключение «Уже существует». Что хорошо.
Мое окружение
Windows 10, Python 3.6 (64-разрядная версия), azure-sdk для python (версия 3.0.0).
Кто-то может подтвердить это поведение? Что делать?