2014-04-05 58 views
1

根據該文件,使用ancestor queries以下限制時,將強制執行:祖先查詢的寫入限制是什麼意思?

祖先查詢讓你做出強烈一致的查詢到 數據存儲,但與同一個祖先的實體限制爲每1個 寫第二。

class Customer(ndb.Model): 
    name = ndb.StringProperty() 

class Purchase(ndb.Model): 
    price = ndb.IntegerProperty 

purchase1 = Purchase(ancestor=customer_entity.key) 
purchase2 = Purchase(ancestor=customer_entity.key) 
purchase3 = Purchase(ancestor=customer_entity.key) 

purchase1.put() 
purchase2.put() 
purchase3.put() 

以同樣的例子,如果我是要寫在同一時間了三次購買,我會得到一個例外,因爲它的不到一秒鐘分開?

回答

2

在這裏您可以找到關於數據存儲,強一致性和實體組的兩個優秀視頻。 Datastore IntroductionDatastore Query, Index and Transaction

關於你的例子。您可以使用「計數」爲單個實體組寫入的put_multi()

+0

謝謝,我知道'put_multi'。這只是假設,如果在同一個實體組的web應用中出現了幾個'put()',那麼gae會如何反應。它會拋出一個異常,或將請求放入隊列中以在3秒內執行?感謝視頻。我會看他們 – Houman

+0

看到這個問題的答案:http://stackoverflow.com/questions/10454467/google-app-engine-hrd-what-if-i-exceed-the-1-write-per-second -limit-for-writin – voscausa

+0

如果您在事務中使用更新,則可以使用事務選項重試。 – voscausa