【发布时间】:2014-06-11 13:34:47
【问题描述】:
我有一个在线程中运行的任务,该任务将在一段时间后保存其输入数据。 Django 通常会保存在此期间可能已更改的整个对象。我也不想长时间运行事务,因为它会失败或阻止其他任务。我的解决方案是重新加载数据并保存结果。这是要走的路还是有一些乐观的锁定方案,部分保存或其他我应该使用的东西?
我的解决方案:
with transaction.atomic():
obj = mod.TheModel.objects.get(id=the_id)
# Work the task
with transaction.atomic():
obj = mod.TheObject.objects.get(id=obj.id)
obj.result = result
obj.save()
【问题讨论】: