GAE Python中是否有替代方法/策略可用於實現與「transaction」中提供的相同的替代方法?
在GAE中,「事務」有助於確保事務內的所有NDB操作成功或全部回滾。
由於實體組計數限制爲5(xg),我不能在我的代碼中的許多地方使用「事務」,因爲我覺得這是需要的。
欣賞你的時間。GAE交易替代方案以克服實體組限制5
一個用例
class A(ndb.Model):
:: # Some Properties
class B(ndb.Model):
:: # Some Properties
class C(ndb.Model):
:: # Some Properties
class D(ndb.Model):
:: # Some Properties
class E(ndb.Model):
:: # Some Properties
class F(ndb.Model):
:: # Some Properties
class G(ndb.Model):
:: # Some Properties
class create_new_x (BaseRequestHandler):
@ndb.toplevel
def get(self):
::
a1 = A (id="x", p1=v1, .. , pn=vn)
a1.put_async()
b1 = B (id="y", p1=v1, .. , pn=vn)
b1.put_async()
::
g1 = G (id="z", p1=v1, .. , pn=vn)
g1.put_async()
return
當我創建一個新的實體(比如, 「A1」)模式 「A」 的,我也創建實體(比如, 「B1」,「C1在相同的用戶請求中的型號「B」,「C」,「D」,「E」,「F」,「G」中的「D1」,「E1」,「F1」,「G1」) I不希望爲實體「B1」,「C1」,D1「,」E1「,」F1「,」G1「分配父代。如果我將它們分配給父母(如「A1」),那麼只要我想要得到任何「B1」,「C1」,D1「,」E1「,」F1「,」G1「 」這是因爲我們需要在指定的祖先鍵‘get_by_id’
我的後裔猜測這是因爲你的問題非常廣泛,任何建議都必須針對你的實現。代碼示例很有幫助。 – user3058197
@ user3058197感謝您的幫助。我用更多的信息更新了這個問題。我已經添加了我的代碼的這樣一部分的類似示例。 – gsinha
如果使用指定的鍵創建父模型,則可以使用該鍵(手動構建鍵)作爲get_by_id中的父項,而不實際檢索它。它甚至不需要像那樣使用它。 –