我正在更新並將訂閱源中的項目(可能有大約40000個項目)一次添加到數據存儲200個項目,問題是訂閱源可能會更改並且某些項目可能會從Feed中刪除。 我有這樣的代碼:如何刪除未在GAE中的訂閱源中找到的實體
class FeedEntry(db.Model):
name = db.StringProperty(required=True)
def updateFeed(offset, number=200):
response = fetchFeed(offset, number)
feedItems = parseFeed(response)
feedEntriesToAdd = []
for item in feedItems:
feedEntriesToAdd.append(
FeedEntry(key_name=item.id, name=item.name)
)
db.put(feedEntriesToAdd)
我如何找出哪些項目是不是在供給和從數據庫中刪除? 我想過創建項目列表(在數據存儲中),並從那裏刪除所有我更新的項目,剩下的項目將被刪除。 - 但這似乎相當緩慢。
PS:所有item.id對於該供稿項都是唯一的,並且是一致的。
最簡單的可能是比你開始的日期時間更早的東西,不是嗎?或者假設你沒有經常更新,實際上在此之前的一段時間可能是謹慎的,以避免任何時鐘偏移錯誤或類似錯誤。使用'auto_now = True'的DateTimeProperty。 –
並刪除我開始之前更新的所有實體? – Shedokan
是的。或者可能在某處設置「我不關心任何在datetime X之前的任何內容」,並將其用作所有查詢中對該實體類型的篩選。如果由於未能從Feed中提取任何項目而沒有清空數據庫,可能會更輕鬆地處理將來發生的問題。 –