2012-04-13 2 views
0

Я выполняю операцию пакетного удаления с помощью ключей сущностей с помощью DatastoreService.delete (клавиши Key ...). Каждый объект является корневым объектом, поэтому операция выполняется без транзакции. Размер партии жестко запрограммирован, и удаление выполняется поэтапно. Каждая следующая операция сначала выполняет запрос только для ключа для получения ключей сущности с использованием курсора, полученного из ранее выполненного запроса get, а затем выполняет пакетный запрос удаления. Схема, кажется, работает нормально, , но что делать, если исключение возникает во время удаления запроса?DatastoreService Batch Delete. Что произойдет, если возникло исключение

Есть ли способ получить несколько успешно удаленных entites или курсор первого не удаленный объект? И не могли бы вы прояснить, как эта операция выполняется в GAE на низкоуровневом уровне.

ответ

0

Если возникает исключение, некоторое неопределенное подмножество объектов было удалено. В настоящее время нет способа получить список тех, которые были удалены.

Ваш лучший вариант - просто повторить всю операцию удаления пакета.

+0

Большое спасибо за ваш ответ. Остается только вопрос: должен ли я использовать курсор (query.startCursor) при попытке повторить попытку или должен ли я запустить его, не указав курсор? – Peter

+0

@Peter Фактически, я имел в виду, что вы должны повторить удаление со списком ключей, которые у вас уже есть. –

Смежные вопросы