Django mysql连接太多
我在mysql中使用Django,存在连接太多的问题 我从命令行运行python脚本,但与Django模型集成以检查数据库中的数据。脚本每30秒运行一次,我使用线程来控制它。My_函数是检查数据库状态的函数Django mysql连接太多,mysql,django,Mysql,Django,我在mysql中使用Django,存在连接太多的问题 我从命令行运行python脚本,但与Django模型集成以检查数据库中的数据。脚本每30秒运行一次,我使用线程来控制它。My_函数是检查数据库状态的函数 while True: now = time.time() if now < next: time.sleep(next - now) t = Thread(target=my_function,) t.start
while True:
now = time.time()
if now < next:
time.sleep(next - now)
t = Thread(target=my_function,)
t.start()# start a thread
next += interval
请看
每个使用Django ORM的线程都会创建一个新的数据库连接 正如达斯蒂所说
每个使用Django ORM的线程都会创建一个新的数据库连接。
Django不会自动管理由您自己的线程创建的连接。
所以你应该管理它
您可以在每个线程退出之前执行以下操作:
from django.db import connection
# your work thread method
def my_function():
# do something...
# close the db connection explicitly
connection.close()
虽然这不是针对你的问题,而是针对标题,可能会帮助其他人,但在我的公司,我们收到了这条消息,但无法确定它的来源。 回溯之后,我们发现使用带有调试模式的django内置站点模型会导致许多连接保持打开状态
我们在数据库连接打开超过20分钟时设置了超时。谢谢!这是有道理的。但奇怪的是,在一个线程终止后,mysql连接仍然存在,并且持续很长时间,但只处于睡眠模式。你知道为什么吗?嗨!你找到答案了吗?
from django.db import connection
# your work thread method
def my_function():
# do something...
# close the db connection explicitly
connection.close()