Django mysql连接太多

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

我在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()# 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()