0

BLOBキーを含むndbエンティティを削除するためのベストプラクティスは何ですか?

これをトライキャッチでラップする必要がありますか?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 に答える