是否可以在一个Django进程中使用多个并发事务?在
具体地说,我有两个函数,它们应该同时执行(在彼此之间产生结果),但是每个函数都应该在各自的事务中。例如:
def process_things(callback, things):
with start_transaction():
for thing in things:
obj = Thing.objects.create(…)
callback(obj)
def callback(obj):
with start_separate_transaction():
…
ThingProcessingLog.objects.create(…)
我希望每个函数都在独立的数据库事务中运行,因此在本例中,ThingProcessingLog
记录将被创建并立即可见,但是Thing
对象在全部处理完之前是不可见的。在
我怎么用Django的ORM来做这个呢?在
您可能需要查看django'sdoc中的“savepoint”
我做了一个小测试(但没有交易,但我认为它可能有用)
我在django的设置中设置了2个dbs:
然后我在一个django shell上这样做了:
^{pr2}$同时我在mysql中做了这个
所以我假设每个db都有一个事务(实际上是同一个db)。在
相关问题 更多 >
编程相关推荐