首页 > 解决方案 > 在Django中的线程内按记录提交保存操作记录

问题描述

我的目标是让 Django 在线程内逐个记录将记录保存到数据库记录中。我的代码如下所示:

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

我已经ATOMIC_REQUESTS设置为 True 里面settings.py。我试图做的是将s.save()命令包含在这样的事务中:

if s.is_valid():
   with transaction.atomic:
        s.save()

但这并没有帮助。我想知道这是否可能,这不是反模式吗?

标签: pythondjangotransactionspython-multithreading

解决方案


推荐阅读