我試圖將光標應用於我的應用,但是,文檔對我來說不夠清晰。 谷歌的光標 http://code.google.com/appengine/docs/python/datastore/queries.html#Query_Cursors如何正確理解「光標」
說明最後的結果返回後,光標的位置被定義爲在結果列表中的位置。遊標不是列表中的相對位置(它不是偏移量);這是數據存儲啓動索引掃描結果時可以跳到的標記。如果查詢的結果在遊標使用之間發生變化,則查詢只會注意遊標之後結果中發生的變化。如果在查詢的光標位置之前出現新結果,則在獲取光標後的結果時不會返回該結果。同樣,如果實體不再是查詢的結果,而是出現在光標之前,則光標後面出現的結果不會更改。如果返回的最後結果從結果集中移除,則光標仍然知道如何找到下一個結果。
在我的理解中,它看起來像查詢結果將始終以默認順序返回(如__鍵__)。然後,使用指定的遊標,它將添加一個過濾器來過濾掉該遊標之前的所有結果。就像谷歌過去提到的一樣。真的嗎?
尋呼與__ __鍵和非唯一屬性 http://code.google.com/appengine/articles/paging.html
另一個問題,可以用光標迭代或任務中使用? 由於某些原因,此功能無法正常工作。 通常它可能會在迭代過程中生成「查詢未找到」。
這是我的例子:
people = Person.all().filter("age > ", 30)
if cursor:
people.with_cursor(cursor)
try:
for person in people: # query not found
cursor = people.cursor()
except DeadlineExceededError:
taskqueue.add(url="/people", params= {"cursor", cursor})