Python 在Django中的线程内逐个记录提交保存操作
我的目标是让Django在线程中逐个记录地将记录保存到DB记录。我的代码如下所示:Python 在Django中的线程内逐个记录提交保存操作,python,django,transactions,python-multithreading,Python,Django,Transactions,Python Multithreading,我的目标是让Django在线程中逐个记录地将记录保存到DB记录。我的代码如下所示: class MyThread(threading.Thread): def __init__(self, data, *args, **kwargs): self.data = data super(MyThread, self).__init__(*args, **kwargs) def run(self): for record in data:
class MyThread(threading.Thread):
def __init__(self, data, *args, **kwargs):
self.data = data
super(MyThread, self).__init__(*args, **kwargs)
def run(self):
for record in data:
s = MySerializer(data=record)
if s.is_valid():
s.save() # I want this record to appear in db at once
if s.is_valid():
with transaction.atomic:
s.save()
我在settings.py中将ATOMIC\u请求设置为True。我试图做的是在如下事务中包含s.save()
命令:
class MyThread(threading.Thread):
def __init__(self, data, *args, **kwargs):
self.data = data
super(MyThread, self).__init__(*args, **kwargs)
def run(self):
for record in data:
s = MySerializer(data=record)
if s.is_valid():
s.save() # I want this record to appear in db at once
if s.is_valid():
with transaction.atomic:
s.save()
但这没有帮助。我想知道这是否可能,这不是一种反模式吗 如果是事务性的,则在事务中执行保存,因此只有当整个事务成功时,才提交事务,并将更改合并到真实的数据库中。我希望一条记录一条记录地提交,但我无法找出正确的语法和方法。也就是说,我想验证数据并保存它,然后立即在真实的数据库中查看它,然后继续验证并保存下一条记录,等等。。。