假设我想创建 2 个新对象。我想在事务中执行此操作,因为我想确保两者都存在或都不存在。
但我也需要一个大计算,所以我的问题是哪里最适合进行计算。在交易范围内?还是外面?(a1的key与计算无关,不需要先保存)
@db.transactional()
def _register(self):
a1.put()
result = big_calculation_like_hashing(a1)
a2.prop = result
a2.put()
假设我想创建 2 个新对象。我想在事务中执行此操作,因为我想确保两者都存在或都不存在。
但我也需要一个大计算,所以我的问题是哪里最适合进行计算。在交易范围内?还是外面?(a1的key与计算无关,不需要先保存)
@db.transactional()
def _register(self):
a1.put()
result = big_calculation_like_hashing(a1)
a2.prop = result
a2.put()
在交易之外进行大计算是个好主意。
@db.transactional()
def _register(self, a1, a2)
a1.put()
a2.put()
a2.prop = big_calculation_like_hashing(a1)
self._register(a1,a2)
一如既往,这取决于。由于计算依赖于a2
完成,因此最好在a2
创建对象之后在事务之外执行。当然,除非这些都是以某种方式共享的对象,如果是这种情况,您将需要在事务的上下文中执行此操作以防止数据损坏。