0

假设我想创建 2 个对象。我想在事务中执行此操作,因为我想确保两者都存在或都不存在。

但我也需要一个大计算,所以我的问题是哪里最适合进行计算。在交易范围内?还是外面?(a1的key与计算无关,不需要先保存)

@db.transactional()
def _register(self):
 a1.put()
 result = big_calculation_like_hashing(a1)
 a2.prop = result
 a2.put()
4

2 回答 2

1

在交易之外进行大计算是个好主意。

@db.transactional()
def _register(self, a1, a2)
        a1.put()
        a2.put()

a2.prop = big_calculation_like_hashing(a1)
self._register(a1,a2)
于 2012-12-14T22:47:08.063 回答
1

一如既往,这取决于。由于计算依赖于a2完成,因此最好在a2创建对象之后在事务之外执行。当然,除非这些都是以某种方式共享的对象,如果是这种情况,您将需要在事务的上下文中执行此操作以防止数据损坏。

于 2012-12-14T16:41:03.530 回答