0

删除包含 blob 键的 ndb 实体的最佳做法是什么?

我应该把它包在一个try catch中吗?我可以将 for 循环展平成批处理(尽管 ndb 是 asnyc)吗?

这是我迄今为止尝试过的,但我不确定这是否是最好的方法:

to_delete = BlogPost.query(ancestor=ndb.Key('BlogPost', int(id))).fetch(1)[0]
for blob_key in to_delete.blob_keys:
    info = blobstore.BlobInfo(bob_key)
    info.delete()
to_delete.key.delete()
delete_success = "successfully deleted"

self.response.out.write(delete_success)
4

1 回答 1

1

我认为您应该删除任务中的 blob,而不是与实体本身内联。
您可以创建一个事务,将任务排队并立即删除实体。

删除任务中的 blob 将使您在发生错误时重试,并且在您有很多 blob 的情况下不会延迟删除操作。

于 2012-08-14T11:26:36.577 回答