删除包含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)
答案 0 :(得分:1)
我认为您应该删除任务中的blob而不是内联实体本身 您可以创建一个将对任务进行排队并立即删除实体的事务。
删除任务中的blob将为您提供在出现错误时重试的好处,并且在您有大量blob的情况下不会延迟删除操作。