Django ORM与多线程处理
我在我的Python脚本中使用Django的ORM(对象关系映射),但不是在一个普通的Django项目中运行,而是以一种解耦的方式使用。
我还在使用多进程模块,不同的进程会发出查询请求。
这个进程成功运行了一个小时,然后出现了这个消息:
“IOError: [Errno 32] Broken pipe”
经过进一步的诊断和调试,我发现这个错误在我调用模型实例的save()方法时出现。
我在想:
Django的ORM在处理保存操作时会出问题吗?
那这个错误还有什么其他原因呢?
谢谢,
安库尔
我找到了答案:我在启动进程后调用了一个返回,这个错误是因为我在复制粘贴一个函数时出现的小失误。
1 个回答
0
没有更多的信息,很难准确判断问题,但很可能是因为在你创建新进程的时候,数据库连接还保持着打开状态,然后你又试图在这些新进程中使用这个数据库连接。不要在你创建的多进程工作中重复使用父进程的数据库连接;每次都应该重新建立数据库连接。