Appengine如何删除命名空间中的所有实体 - Java

clo*_*pre 5 java google-app-engine

我使用命名空间来管理多租户.我需要知道是否有一种简单的方法可以删除所有实体.

我知道我可以使用mapreduce但是我看到的所有示例都从servlet配置中调用mapper,但是当用户选择关闭帐户时我需要动态传递命名空间字符串.

clo*_*pre 2

经过研究,实体搜索时无法使用namespace调用mapreduce。这可能是最好的路线。

唯一的办法就是

  • 创建一个任务队列来删除整个命名空间
  • 获取命名空间中的所有类型。使用延迟任务删除每种
  • 对于每种类型,获取实体(仅键)。可以进行批量删除。如果您有很多实体,这可能会超时。但由于您只获取密钥并进行批量删除 - 我不认为这是一个问题。否则,您可以在后端指定此任务,使其不会超时。