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中的父项,而不实际检索它。它甚至不需要像那样使用它。 –