Jon*_*han 6 django multithreading persistent-connection connection-close
Django 1.6引入了持久连接功能.但是我注意到退出使用django的ORM的脚本至少留下了一些在db端打开的连接.
设置:django 6.0,postgres 9.2和psycopg2 2.5.1.
如何从脚本中优雅地关闭与数据库的连接?
该警告部分提到,Django的打开每个线程的连接,因此在多线程的脚本,并创造Django的每个线程的连接,即使不访问数据库的主题?
每个线程是否需要单独关闭数据库连接?
如果上述两个问题的答案都是肯定的,那么对于不在脚本退出时加入的守护程序线程(例如comm),你能做些什么呢?
小智 5
我刚才遇到了同样的问题......
当我的线程退出时,通过调用以下代码解决它:
from django.db import close_old_connections
close_old_connections()
Run Code Online (Sandbox Code Playgroud)
我刚刚升级并出现了这个问题,并且close_old_connections在启动子进程之前在主进程中无法像旧的close_connections那样为每个进程提供自己的连接。但是,如果您查看做什么close_connections用,您可以重新创建它docs。
所以我在创建我的子流程之前在我的主流程中这样做。
from django.db import connections
for conn in connections.all():
conn.close()
Run Code Online (Sandbox Code Playgroud)
而且效果很好。新的close_old_connections只会在连接过期或消失时关闭连接。
| 归档时间: |
|
| 查看次数: |
2928 次 |
| 最近记录: |