【发布时间】:2023-04-09 23:42:01
【问题描述】:
在 django 中,持久的数据库连接由threading.local 实现。此代码位于类django.db.utils.ConnectionHandler 中。因为这个类是在django.db.__init.__.py 中实例化的,所以当我们执行import django.db 时它会被实例化。这会在请求/响应周期的某个地方发生。对于同一线程中的后续请求,甚至同一进程中的不同线程django.db.__init__.py 将不会被执行,因为它已经被加载。
所以我的问题是它不会为同一进程中的所有线程共享连接。我在这里遗漏了什么吗?
我认为像下面这样的东西应该可以正常工作
# file db/__init__.py
connections = threading.local()
connections.connections = ConnectionHandler()
【问题讨论】:
标签: django multithreading django-orm thread-local