2012-04-13 87 views
0

我使用DatastoreService.delete(Key ...键)对实体键执行批量删除操作。 每个实体都是一个根实体,所以操作在没有事务的情况下执行。 批处理大小是硬编码的,并且逐步执行删除操作。以下每个操作首先执行按键获取查询,以使用从先前执行的获取查询接收到的游标获取实体密钥,然后执行批量删除查询。计划似乎工作正常, 但如果删除查询时发生异常呢?DatastoreService批量删除。如果发生异常,会发生什么

有什么办法可以获得一些成功删除的实体,或者是第一个没有被删除的实体的光标吗?你能否澄清一下这个操作在GAE中是如何在低层进行的。

回答

0

如果发生异常,某些未定义的实体子集已被删除。目前没有任何方式可以获得哪些被删除的清单。

你最好的选择是简单地重试整批再次删除操作。

+0

非常感谢您的回答。剩下的唯一问题是:我应该在做重试尝试时使用游标(query.startCursor),还是应该运行它,省略游标? – Peter 2012-04-19 21:29:59

+0

@Peter其实,我的意思是你应该用已有的密钥列表重试删除操作。 – 2012-04-20 00:15:30