django Python manage.py runserver 启动测试服务, 每次新的 http 请求 都会新建一个 thread 处理, 之后会自动关闭这个线程
关闭线程的同时, 资源会自动释放,譬如和数据库的连接, 包括 Django orm 新建的连接和手动 db.connection 创建的连接都会自动释放.
我是疑问句. 提前感谢大佬解答.
我是疑问句. 提前感谢大佬解答.
手动创建的连接需要自己管理,
源码一般是两种写法
用 with 来控制退出时候 close
或者结束执行 cursor.close()
是的,连接会断,但会有情况就是炸裂的情况下,执行不到
也就是说,你有一个 http 请求,正常来到结束的时候,它会处理
但是假设你在 request 过程异常,这个执行应该是执行不到的
django/http/response.py -L 242
# The WSGI server must call this method upon completion of the request.
# See http://blog.dscpl.com.au/2012/10/obligations-for-calling-close-on.html
def close(self)
这里会做一些处理
你要继续了解,可以从这里追代码回去。
-L 60,
这里是做了处理
signals.request_started.connect(close_old_connections)
signals.request_finished.connect(close_old_connections)
会的,
这跟客户端没关系。
你连接结束了,服务端能感知到,会关闭的。
——————————
我们上面谈的只是说,在某些情况,你不主动关闭,可能会引起 too many connections 这种情况。
多谢多谢!无意间一句话又提点我一下.