【发布时间】:2014-04-26 10:10:03
【问题描述】:
是否可以在一个 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 做到这一点?
【问题讨论】:
标签: python django django-orm